2006-09-22 00:22:34 +08:00
|
|
|
"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 addforce command :h3
|
2011-06-09 05:46:03 +08:00
|
|
|
fix addforce/cuda command :h3
|
2006-09-22 00:22:34 +08:00
|
|
|
|
|
|
|
[Syntax:]
|
|
|
|
|
2009-08-09 06:03:37 +08:00
|
|
|
fix ID group-ID addforce fx fy fz keyword value ... :pre
|
2006-09-22 00:22:34 +08:00
|
|
|
|
2009-08-09 06:03:37 +08:00
|
|
|
ID, group-ID are documented in "fix"_fix.html command :ulb,l
|
|
|
|
addforce = style name of this fix command :l
|
|
|
|
fx,fy,fz = force component values (force units) :l
|
2011-11-29 01:25:54 +08:00
|
|
|
any of fx,fy,fz can be a variable (see below) :pre
|
2009-08-09 06:03:37 +08:00
|
|
|
zero or more keyword/value pairs may be appended to args :l
|
2014-09-06 00:58:30 +08:00
|
|
|
keyword = {every} or {region} or {energy} :l
|
|
|
|
{every} value = Nevery
|
|
|
|
Nevery = add force every this many timesteps
|
2009-08-09 06:03:37 +08:00
|
|
|
{region} value = region-ID
|
2010-04-23 22:24:18 +08:00
|
|
|
region-ID = ID of region atoms must be in to have added force
|
2010-08-13 07:10:38 +08:00
|
|
|
{energy} value = v_name
|
|
|
|
v_name = variable with name that calculates the potential energy of each atom in the added force field :pre
|
2009-08-09 06:03:37 +08:00
|
|
|
:ule
|
2006-09-22 00:22:34 +08:00
|
|
|
|
|
|
|
[Examples:]
|
|
|
|
|
2010-04-23 22:24:18 +08:00
|
|
|
fix kick flow addforce 1.0 0.0 0.0
|
|
|
|
fix kick flow addforce 1.0 0.0 v_oscillate
|
2010-08-13 07:10:38 +08:00
|
|
|
fix ff boundary addforce 0.0 0.0 v_push energy v_espace :pre
|
2006-09-22 00:22:34 +08:00
|
|
|
|
|
|
|
[Description:]
|
|
|
|
|
|
|
|
Add fx,fy,fz to the corresponding component of force for each atom in
|
|
|
|
the group. This command can be used to give an additional push to
|
|
|
|
atoms in a simulation, such as for a simulation of Poiseuille flow in
|
|
|
|
a channel.
|
|
|
|
|
2010-05-07 23:11:21 +08:00
|
|
|
Any of the 3 quantities defining the force components can be specified
|
|
|
|
as an equal-style or atom-style "variable"_variable.html, namely {fx},
|
|
|
|
{fy}, {fz}. If the value is a variable, it should be specified as
|
2010-08-13 07:10:38 +08:00
|
|
|
v_name, where name is the variable name. In this case, the variable
|
2013-01-09 04:26:00 +08:00
|
|
|
will be evaluated each timestep, and its value(s) used to determine
|
|
|
|
the force component.
|
2010-04-23 22:24:18 +08:00
|
|
|
|
|
|
|
Equal-style variables can specify formulas with various mathematical
|
|
|
|
functions, and include "thermo_style"_thermo_style.html command
|
|
|
|
keywords for the simulation box parameters and timestep and elapsed
|
|
|
|
time. Thus it is easy to specify a time-dependent force field.
|
|
|
|
|
|
|
|
Atom-style variables can specify the same formulas as equal-style
|
|
|
|
variables but can also include per-atom values, such as atom
|
|
|
|
coordinates. Thus it is easy to specify a spatially-dependent force
|
|
|
|
field with optional time-dependence as well.
|
|
|
|
|
2014-09-06 00:58:30 +08:00
|
|
|
If the {every} keyword is used, the {Nevery} setting determines how
|
|
|
|
often the forces are applied. The default value is 1, for every
|
|
|
|
timestep.
|
|
|
|
|
2009-08-09 06:03:37 +08:00
|
|
|
If the {region} keyword is used, the atom must also be in the
|
|
|
|
specified geometric "region"_region.html in order to have force added
|
|
|
|
to it.
|
|
|
|
|
2010-04-23 22:25:37 +08:00
|
|
|
:line
|
|
|
|
|
2010-04-23 22:24:18 +08:00
|
|
|
Adding a force to atoms implies a change in their potential energy as
|
|
|
|
they move due to the applied force field. For dynamics via the "run"
|
|
|
|
command, this energy can be optionally added to the system's potential
|
|
|
|
energy for thermodynamic output (see below). For energy minimization
|
|
|
|
via the "minimize" command, this energy must be added to the system's
|
|
|
|
potential energy to formulate a self-consistent minimization problem
|
|
|
|
(see below).
|
|
|
|
|
|
|
|
The {energy} keyword is not allowed if the added force is a constant
|
|
|
|
vector F = (fx,fy,fz), with all components defined as numeric
|
|
|
|
constants and not as variables. This is because LAMMPS can compute
|
|
|
|
the energy for each atom directly as E = -x dot F = -(x*fx + y*fy +
|
|
|
|
z*fz), so that -Grad(E) = F.
|
|
|
|
|
|
|
|
The {energy} keyword is optional if the added force is defined with
|
|
|
|
one or more variables, and if you are performing dynamics via the
|
|
|
|
"run"_run.html command. If the keyword is not used, LAMMPS will set
|
|
|
|
the energy to 0.0, which is typically fine for dynamics.
|
|
|
|
|
|
|
|
The {energy} keyword is required if the added force is defined with
|
|
|
|
one or more variables, and you are performing energy minimization via
|
2010-08-13 07:10:38 +08:00
|
|
|
the "minimize" command. The keyword specifies the name of an
|
|
|
|
atom-style "variable"_variable.html which is used to compute the
|
|
|
|
energy of each atom as function of its position. Like variables used
|
|
|
|
for {fx}, {fy}, {fz}, the energy variable is specified as v_name,
|
|
|
|
where name is the variable name.
|
2010-04-23 22:24:18 +08:00
|
|
|
|
|
|
|
Note that when the {energy} keyword is used during an energy
|
|
|
|
minimization, you must insure that the formula defined for the
|
|
|
|
atom-style "variable"_variable.html is consistent with the force
|
|
|
|
variable formulas, i.e. that -Grad(E) = F. For example, if the force
|
|
|
|
were a spring-like F = kx, then the energy formula should be E =
|
|
|
|
-0.5kx^2. If you don't do this correctly, the minimization will not
|
|
|
|
converge properly.
|
|
|
|
|
2011-06-09 05:46:03 +08:00
|
|
|
:line
|
|
|
|
|
|
|
|
Styles with a {cuda} suffix are functionally the same as the
|
|
|
|
corresponding style without the suffix. They have been optimized to
|
|
|
|
run faster, depending on your available hardware, as discussed in
|
2011-12-14 04:35:35 +08:00
|
|
|
"Section_accelerate"_Section_accelerate.html of the manual. The
|
|
|
|
accelerated styles take the same arguments and should produce the same
|
|
|
|
results, except for round-off and precision issues.
|
2011-06-09 05:46:03 +08:00
|
|
|
|
2011-08-27 02:53:00 +08:00
|
|
|
These accelerated styles are part of the USER-CUDA package. They are
|
|
|
|
only enabled if LAMMPS was built with that package. See the "Making
|
|
|
|
LAMMPS"_Section_start.html#start_3 section for more info.
|
2011-06-09 05:46:03 +08:00
|
|
|
|
|
|
|
You can specify the accelerated styles explicitly in your input script
|
|
|
|
by including their suffix, or you can use the "-suffix command-line
|
2012-01-28 07:39:14 +08:00
|
|
|
switch"_Section_start.html#start_7 when you invoke LAMMPS, or you can
|
2011-08-26 00:46:23 +08:00
|
|
|
use the "suffix"_suffix.html command in your input script.
|
2011-06-09 05:46:03 +08:00
|
|
|
|
2011-12-14 04:35:35 +08:00
|
|
|
See "Section_accelerate"_Section_accelerate.html of the manual for
|
|
|
|
more instructions on how to use the accelerated styles effectively.
|
2011-06-09 05:46:03 +08:00
|
|
|
|
|
|
|
:line
|
|
|
|
|
2007-10-11 06:28:11 +08:00
|
|
|
[Restart, fix_modify, output, run start/stop, minimize info:]
|
2007-06-26 08:03:39 +08:00
|
|
|
|
|
|
|
No information about this fix is written to "binary restart
|
2008-08-01 23:10:00 +08:00
|
|
|
files"_restart.html.
|
|
|
|
|
|
|
|
The "fix_modify"_fix_modify.html {energy} option is supported by this
|
|
|
|
fix to add the potential "energy" inferred by the added force to the
|
|
|
|
system's potential energy as part of "thermodynamic
|
|
|
|
output"_thermo_style.html. This is a fictitious quantity but is
|
|
|
|
needed so that the "minimize"_minimize.html command can include the
|
|
|
|
forces added by this fix in a consistent manner. I.e. there is a
|
|
|
|
decrease in potential energy when atoms move in the direction of the
|
|
|
|
added force.
|
|
|
|
|
2010-04-03 00:51:06 +08:00
|
|
|
This fix computes a global scalar and a global 3-vector of forces,
|
|
|
|
which can be accessed by various "output
|
2011-08-26 01:01:01 +08:00
|
|
|
commands"_Section_howto.html#howto_15. The scalar is the potential
|
|
|
|
energy discussed above. The vector is the total force on the group of
|
|
|
|
atoms before the forces on individual atoms are changed by the fix.
|
|
|
|
The scalar and vector values calculated by this fix are "extensive".
|
2008-03-18 04:49:34 +08:00
|
|
|
|
|
|
|
No parameter of this fix can be used with the {start/stop} keywords of
|
|
|
|
the "run"_run.html command.
|
2007-06-26 08:03:39 +08:00
|
|
|
|
|
|
|
The forces due to this fix are imposed during an energy minimization,
|
2010-04-23 22:24:18 +08:00
|
|
|
invoked by the "minimize"_minimize.html command. You should not
|
|
|
|
specify force components with a variable that has time-dependence for
|
|
|
|
use with a minimizer, since the minimizer increments the timestep as
|
|
|
|
the iteration count during the minimization.
|
2006-09-22 00:22:34 +08:00
|
|
|
|
2008-08-01 23:10:00 +08:00
|
|
|
IMPORTANT NOTE: If you want the fictitious potential energy associated
|
|
|
|
with the added forces to be included in the total potential energy of
|
|
|
|
the system (the quantity being minimized), you MUST enable the
|
|
|
|
"fix_modify"_fix_modify.html {energy} option for this fix.
|
|
|
|
|
2006-09-22 00:22:34 +08:00
|
|
|
[Restrictions:] none
|
|
|
|
|
|
|
|
[Related commands:]
|
|
|
|
|
|
|
|
"fix setforce"_fix_setforce.html, "fix aveforce"_fix_aveforce.html
|
|
|
|
|
2014-09-06 00:58:30 +08:00
|
|
|
[Default:]
|
|
|
|
|
|
|
|
The option default for the every keyword is every = 1.
|