forked from lijiext/lammps
299 lines
15 KiB
Plaintext
299 lines
15 KiB
Plaintext
"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c
|
|
|
|
:link(lws,http://lammps.sandia.gov)
|
|
:link(ld,Manual.html)
|
|
:link(lc,Section_commands.html#comm)
|
|
|
|
:line
|
|
|
|
fix command :h3
|
|
|
|
[Syntax:]
|
|
|
|
fix ID group-ID style args :pre
|
|
|
|
ID = user-assigned name for the fix
|
|
group-ID = ID of the group of atoms to apply the fix to
|
|
style = one of a long list of possible style names (see below)
|
|
args = arguments used by a particular style :ul
|
|
|
|
[Examples:]
|
|
|
|
fix 1 all nve
|
|
fix 3 all nvt temp 300.0 300.0 0.01
|
|
fix mine top setforce 0.0 NULL 0.0 :pre
|
|
|
|
[Description:]
|
|
|
|
Set a fix that will be applied to a group of atoms. In LAMMPS, a
|
|
"fix" is any operation that is applied to the system during
|
|
timestepping or minimization. Examples include updating of atom
|
|
positions and velocities due to time integration, controlling
|
|
temperature, applying constraint forces to atoms, enforcing boundary
|
|
conditions, computing diagnostics, etc. There are dozens of fixes
|
|
defined in LAMMPS and new ones can be added; see "this
|
|
section"_Section_modify.html for a discussion.
|
|
|
|
Fixes perform their operations at different stages of the timestep.
|
|
If 2 or more fixes operate at the same stage of the timestep, they are
|
|
invoked in the order they were specified in the input script.
|
|
|
|
The ID of a fix can only contain alphanumeric characters and
|
|
underscores.
|
|
|
|
Fixes can be deleted with the "unfix"_unfix.html command.
|
|
|
|
IMPORTANT NOTE: The "unfix"_unfix.html command is the only way to turn
|
|
off a fix; simply specifying a new fix with a similar style will not
|
|
turn off the first one. This is especially important to realize for
|
|
integration fixes. For example, using a "fix nve"_fix_nve.html
|
|
command for a second run after using a "fix nvt"_fix_nh.html command
|
|
for the first run, will not cancel out the NVT time integration
|
|
invoked by the "fix nvt" command. Thus two time integrators would be
|
|
in place!
|
|
|
|
If you specify a new fix with the same ID and style as an existing
|
|
fix, the old fix is deleted and the new one is created (presumably
|
|
with new settings). This is the same as if an "unfix" command were
|
|
first performed on the old fix, except that the new fix is kept in the
|
|
same order relative to the existing fixes as the old one originally
|
|
was. Note that this operation also wipes out any additional changes
|
|
made to the old fix via the "fix_modify"_fix_modify.html command.
|
|
|
|
The "fix modify"_fix_modify.html command allows settings for some
|
|
fixes to be reset. See the doc page for individual fixes for details.
|
|
|
|
Some fixes store an internal "state" which is written to binary
|
|
restart files via the "restart"_restart.html or
|
|
"write_restart"_write_restart.html commands. This allows the fix to
|
|
continue on with its calculations in a restarted simulation. See the
|
|
"read_restart"_read_restart.html command for info on how to re-specify
|
|
a fix in an input script that reads a restart file. See the doc pages
|
|
for individual fixes for info on which ones can be restarted.
|
|
|
|
:line
|
|
|
|
Some fixes calculate one of three styles of quantities: global,
|
|
per-atom, or local, which can be used by other commands or output as
|
|
described below. A global quantity is one or more system-wide values,
|
|
e.g. the energy of a wall interacting with particles. A per-atom
|
|
quantity is one or more values per atom, e.g. the displacement vector
|
|
for each atom since time 0. Per-atom values are set to 0.0 for atoms
|
|
not in the specified fix group. Local quantities are calculated by
|
|
each processor based on the atoms it owns, but there may be zero or
|
|
more per atoms.
|
|
|
|
Note that a single fix may produces either global or per-atom or local
|
|
quantities (or none at all), but never more than one of these.
|
|
|
|
Global, per-atom, and local quantities each come in three kinds: a
|
|
single scalar value, a vector of values, or a 2d array of values. The
|
|
doc page for each fix describes the style and kind of values it
|
|
produces, e.g. a per-atom vector. Some fixes produce more than one
|
|
kind of a single style, e.g. a global scalar and a global vector.
|
|
|
|
When a fix quantity is accessed, as in many of the output commands
|
|
discussed below, it can be referenced via the following bracket
|
|
notation, where ID is the ID of the fix:
|
|
|
|
f_ID | entire scalar, vector, or array
|
|
f_ID\[I\] | one element of vector, one column of array
|
|
f_ID\[I\]\[J\] | one element of array :tb(s=|)
|
|
|
|
In other words, using one bracket reduces the dimension of the
|
|
quantity once (vector -> scalar, array -> vector). Using two brackets
|
|
reduces the dimension twice (array -> scalar). Thus a command that
|
|
uses scalar fix values as input can also process elements of a vector
|
|
or array.
|
|
|
|
Note that commands and "variables"_variable.html which use fix
|
|
quantities typically do not allow for all kinds, e.g. a command may
|
|
require a vector of values, not a scalar. This means there is no
|
|
ambiguity about referring to a fix quantity as f_ID even if it
|
|
produces, for example, both a scalar and vector. The doc pages for
|
|
various commands explain the details.
|
|
|
|
:line
|
|
|
|
In LAMMPS, the values generated by a fix can be used in several ways:
|
|
|
|
Global values can be output via the "thermo_style
|
|
custom"_thermo_style.html or "fix ave/time"_fix_ave_time.html command.
|
|
Or the values can be referenced in a "variable equal"_variable.html or
|
|
"variable atom"_variable.html command. :ulb,l
|
|
|
|
Per-atom values can be output via the "dump custom"_dump.html command
|
|
or the "fix ave/spatial"_fix_ave_spatial.html command. Or they can be
|
|
time-averaged via the "fix ave/atom"_fix_ave_atom.html command or
|
|
reduced by the "compute reduce"_compute_reduce.html command. Or the
|
|
per-atom values can be referenced in an "atom-style
|
|
variable"_variable.html. :l
|
|
|
|
Local values can be reduced by the "compute
|
|
reduce"_compute_reduce.html command, or histogrammed by the "fix
|
|
ave/histo"_fix_ave_histo.html command. :l,ule
|
|
|
|
See this "howto section"_Section_howto.html#howto_15 for a summary of
|
|
various LAMMPS output options, many of which involve fixes.
|
|
|
|
The results of fixes that calculate global quantities can be either
|
|
"intensive" or "extensive" values. Intensive means the value is
|
|
independent of the number of atoms in the simulation,
|
|
e.g. temperature. Extensive means the value scales with the number of
|
|
atoms in the simulation, e.g. total rotational kinetic energy.
|
|
"Thermodynamic output"_thermo_style.html will normalize extensive
|
|
values by the number of atoms in the system, depending on the
|
|
"thermo_modify norm" setting. It will not normalize intensive values.
|
|
If a fix value is accessed in another way, e.g. by a
|
|
"variable"_variable.html, you may want to know whether it is an
|
|
intensive or extensive value. See the doc page for individual fixes
|
|
for further info.
|
|
|
|
:line
|
|
|
|
Each fix style has its own documentation page which describes its
|
|
arguments and what it does, as listed below. Here is an alphabetic
|
|
list of fix styles available in LAMMPS. They are also given in more
|
|
compact form in the fix section of "this
|
|
page"_Section_commands.html#cmd_5.
|
|
|
|
There are also additional fix styles (not listed here) submitted by
|
|
users which are included in the LAMMPS distribution. The list of
|
|
these with links to the individual styles are given in the fix section
|
|
of "this page"_Section_commands.html#cmd_5.
|
|
|
|
There are also additional accelerated fix styles (not listed here)
|
|
included in the LAMMPS distribution for faster performance on CPUs and
|
|
GPUs. The list of these with links to the individual styles are given
|
|
in the fix section of "this page"_Section_commands.html#cmd_5.
|
|
|
|
"adapt"_fix_adapt.html - change a simulation parameter over time
|
|
"addforce"_fix_addforce.html - add a force to each atom
|
|
"append/atoms"_fix_append_atoms.html - append atoms to a running simulation
|
|
"aveforce"_fix_aveforce.html - add an averaged force to each atom
|
|
"ave/atom"_fix_ave_atom.html - compute per-atom time-averaged quantities
|
|
"ave/correlate"_fix_correlate_atom.html - compute/output time correlations
|
|
"ave/histo"_fix_ave_histo.html - compute/output time-averaged histograms
|
|
"ave/spatial"_fix_ave_spatial.html - compute/output time-averaged per-atom quantities by layer
|
|
"ave/time"_fix_ave_time.html - compute/output global time-averaged quantities
|
|
"balance"_fix_balance.html - perform dynamic load-balancing
|
|
"bond/break"_fix_bond_break.html - break bonds on the fly
|
|
"bond/create"_fix_bond_create.html - create bonds on the fly
|
|
"bond/swap"_fix_bond_swap.html - Monte Carlo bond swapping
|
|
"box/relax"_fix_box_relax.html - relax box size during energy minimization
|
|
"deform"_fix_deform.html - change the simulation box size/shape
|
|
"deposit"_fix_deposit.html - add new atoms above a surface
|
|
"drag"_fix_drag.html - drag atoms towards a defined coordinate
|
|
"dt/reset"_fix_dt_reset.html - reset the timestep based on velocity, forces
|
|
"efield"_fix_efield.html - impose electric field on system
|
|
"enforce2d"_fix_enforce2d.html - zero out z-dimension velocity and force
|
|
"evaporate"_fix_evaporate.html - remove atoms from simulation periodically
|
|
"external"_fix_external.html - callback to an external driver program
|
|
"freeze"_fix_freeze.html - freeze atoms in a granular simulation
|
|
"gcmc"_fix_gcmc.html - grand canonical insertions/deletions
|
|
"gld"_fix_gcmc.html - generalized Langevin dynamics integrator
|
|
"gravity"_fix_gravity.html - add gravity to atoms in a granular simulation
|
|
"heat"_fix_heat.html - add/subtract momentum-conserving heat
|
|
"indent"_fix_indent.html - impose force due to an indenter
|
|
"langevin"_fix_langevin.html - Langevin temperature control
|
|
"lineforce"_fix_lineforce.html - constrain atoms to move in a line
|
|
"momentum"_fix_momentum.html - zero the linear and/or angular momentum of a group of atoms
|
|
"move"_fix_move.html - move atoms in a prescribed fashion
|
|
"msst"_fix_msst.html - multi-scale shock technique (MSST) integration
|
|
"neb"_fix_neb.html - nudged elastic band (NEB) spring forces
|
|
"nph"_fix_nh.html - constant NPH time integration via Nose/Hoover
|
|
"nphug"_fix_nphug.html - constant-stress Hugoniostat integration
|
|
"nph/asphere"_fix_nph_asphere.html - NPH for aspherical particles
|
|
"nph/sphere"_fix_nph_sphere.html - NPH for spherical particles
|
|
"npt"_fix_nh.html - constant NPT time integration via Nose/Hoover
|
|
"npt/asphere"_fix_npt_asphere.html - NPT for aspherical particles
|
|
"npt/sphere"_fix_npt_sphere.html - NPT for spherical particles
|
|
"nve"_fix_nve.html - constant NVE time integration
|
|
"nve/asphere"_fix_nve_asphere.html - NVE for aspherical particles
|
|
"nve/asphere/noforce"_fix_nve_asphere_noforce.html - NVE for aspherical particles without forces"
|
|
"nve/body"_fix_nve_body.html - NVE for body particles
|
|
"nve/limit"_fix_nve_limit.html - NVE with limited step length
|
|
"nve/line"_fix_nve_line.html - NVE for line segments
|
|
"nve/noforce"_fix_nve_noforce.html - NVE without forces (v only)
|
|
"nve/sphere"_fix_nve_sphere.html - NVE for spherical particles
|
|
"nve/tri"_fix_nve_tri.html - NVE for triangles
|
|
"nvt"_fix_nh.html - constant NVT time integration via Nose/Hoover
|
|
"nvt/asphere"_fix_nvt_asphere.html - NVT for aspherical particles
|
|
"nvt/sllod"_fix_nvt_sllod.html - NVT for NEMD with SLLOD equations
|
|
"nvt/sphere"_fix_nvt_sphere.html - NVT for spherical particles
|
|
"orient/fcc"_fix_orient_fcc.html - add grain boundary migration force
|
|
"planeforce"_fix_planeforce.html - constrain atoms to move in a plane
|
|
"poems"_fix_poems.html - constrain clusters of atoms to move \
|
|
as coupled rigid bodies
|
|
"pour"_fix_pour.html - pour new atoms/molecules into a granular simulation domain
|
|
"press/berendsen"_fix_press_berendsen.html - pressure control by \
|
|
Berendsen barostat
|
|
"print"_fix_print.html - print text and variables during a simulation
|
|
"property/atom"_fix_property_atom.html - add customized per-atom values
|
|
"qeq/comb"_fix_qeq_comb.html - charge equilibration for COMB potential \
|
|
"qeq/dynamic"_fix_qeq.html - charge equilibration via dynamic method \
|
|
"qeq/point"_fix_qeq.html - charge equilibration via point method \
|
|
"qeq/shielded"_fix_qeq.html - charge equilibration via shielded method \
|
|
"qeq/slater"_fix_qeq.html - charge equilibration via Slater method \
|
|
"reax/bonds"_fix_reax_bonds.html - write out ReaxFF bond information \
|
|
"recenter"_fix_recenter.html - constrain the center-of-mass position \
|
|
of a group of atoms
|
|
"restrain"_fix_restrain.html - constrain a bond, angle, dihedral
|
|
"rigid"_fix_rigid.html - constrain one or more clusters of atoms to \
|
|
move as a rigid body with NVE integration
|
|
"rigid/nph"_fix_rigid.html - constrain one or more clusters of atoms to \
|
|
move as a rigid body with NPH integration
|
|
"rigid/npt"_fix_rigid.html - constrain one or more clusters of atoms to \
|
|
move as a rigid body with NPT integration
|
|
"rigid/nve"_fix_rigid.html - constrain one or more clusters of atoms to \
|
|
move as a rigid body with alternate NVE integration
|
|
"rigid/nvt"_fix_rigid.html - constrain one or more clusters of atoms to \
|
|
move as a rigid body with NVT integration
|
|
"rigid/small"_fix_rigid.html - constrain many small clusters of atoms to \
|
|
move as a rigid body with NVE integration
|
|
"setforce"_fix_setforce.html - set the force on each atom
|
|
"shake"_fix_shake.html - SHAKE constraints on bonds and/or angles
|
|
"spring"_fix_spring.html - apply harmonic spring force to group of atoms
|
|
"spring/rg"_fix_spring_rg.html - spring on radius of gyration of \
|
|
group of atoms
|
|
"spring/self"_fix_spring_self.html - spring from each atom to its origin
|
|
"srd"_fix_srd.html - stochastic rotation dynamics (SRD)
|
|
"store/force"_fix_store_force.html - store force on each atom
|
|
"store/state"_fix_store_state.html - store attributes for each atom
|
|
"temp/berendsen"_fix_temp_berendsen.html - temperature control by \
|
|
Berendsen thermostat
|
|
"temp/rescale"_fix_temp_rescale.html - temperature control by \
|
|
velocity rescaling
|
|
"thermal/conductivity"_fix_thermal_conductivity.html - Muller-Plathe kinetic energy exchange for \
|
|
thermal conductivity calculation
|
|
"tmd"_fix_tmd.html - guide a group of atoms to a new configuration
|
|
"ttm"_fix_ttm.html - two-temperature model for electronic/atomic coupling
|
|
"tune/kspace"_fix_tune_kspace.html - auto-tune KSpace parameters
|
|
"vector"_vector.html - accumulate a global vector every N timesteps
|
|
"viscosity"_fix_viscosity.html - Muller-Plathe momentum exchange for \
|
|
viscosity calculation
|
|
"viscous"_fix_viscous.html - viscous damping for granular simulations
|
|
"wall/colloid"_fix_wall.html - Lennard-Jones wall interacting with finite-size particles
|
|
"wall/gran"_fix_wall_gran.html - frictional wall(s) for granular simulations
|
|
"wall/harmonic"_fix_wall.html - harmonic spring wall
|
|
"wall/lj1043"_fix_wall.html - Lennard-Jones 10-4-3 wall
|
|
"wall/lj126"_fix_wall.html - Lennard-Jones 12-6 wall
|
|
"wall/lj93"_fix_wall.html - Lennard-Jones 9-3 wall
|
|
"wall/piston"_fix_wall_piston.html - moving reflective piston wall
|
|
"wall/reflect"_fix_wall_reflect.html - reflecting wall(s)
|
|
"wall/region"_fix_wall_region.html - use region surface as wall
|
|
"wall/srd"_fix_wall_srd.html - slip/no-slip wall for SRD particles :ul
|
|
|
|
[Restrictions:]
|
|
|
|
Some fix styles are part of specific packages. They are only enabled
|
|
if LAMMPS was built with that package. See the "Making
|
|
LAMMPS"_Section_start.html#start_3 section for more info on packages.
|
|
The doc pages for individual fixes tell if it is part of a package.
|
|
|
|
[Related commands:]
|
|
|
|
"unfix"_unfix.html, "fix_modify"_fix_modify.html
|
|
|
|
[Default:] none
|