Merge branch 'develop' into collected-small-fixes
This commit is contained in:
@ -19,7 +19,7 @@ Syntax
|
||||
* ex,ey,ez = E-field component values (electric field units)
|
||||
* any of ex,ey,ez can be a variable (see below)
|
||||
* zero or more keyword/value pairs may be appended to args
|
||||
* keyword = *region* or *energy*
|
||||
* keyword = *region* or *energy* or *potential*
|
||||
|
||||
.. parsed-literal::
|
||||
|
||||
@ -27,6 +27,8 @@ Syntax
|
||||
region-ID = ID of region atoms must be in to have added force
|
||||
*energy* value = v_name
|
||||
v_name = variable with name that calculates the potential energy of each atom in the added E-field
|
||||
*potential* value = v_name
|
||||
v_name = variable with name that calculates the electric potential of each atom in the added E-field
|
||||
|
||||
Examples
|
||||
""""""""
|
||||
@ -112,7 +114,8 @@ one or more variables, and if you are performing dynamics via the
|
||||
:doc:`run <run>` 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
|
||||
The *energy* keyword (or *potential* keyword, described below)
|
||||
is required if the added force is defined with
|
||||
one or more variables, and you are performing energy minimization via
|
||||
the "minimize" command for charged particles. It is not required for
|
||||
point-dipoles, but a warning is issued since the minimizer in LAMMPS
|
||||
@ -122,7 +125,7 @@ minimize the orientation of dipoles in an applied electric field.
|
||||
The *energy* keyword specifies the name of an atom-style
|
||||
:doc:`variable <variable>` which is used to compute the energy of each
|
||||
atom as function of its position. Like variables used for *ex*,
|
||||
*ey*, *ez*, the energy variable is specified as v_name, where name
|
||||
*ey*, *ez*, the energy variable is specified as "v_name", where "name"
|
||||
is the variable name.
|
||||
|
||||
Note that when the *energy* keyword is used during an energy
|
||||
@ -133,6 +136,27 @@ due to the electric field 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.
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
The *potential* keyword can be used as an alternative to the *energy* keyword
|
||||
to specify the name of an atom-style variable, which is used to compute the
|
||||
added electric potential to each atom as a function of its position. The
|
||||
variable should have units of electric field multiplied by distance (that is,
|
||||
in `units real`, the potential should be in volts). As with the *energy*
|
||||
keyword, the variable name is specified as "v_name". The energy added by this
|
||||
fix is then calculated as the electric potential multiplied by charge.
|
||||
|
||||
The *potential* keyword is mainly intended for correct charge
|
||||
equilibration in simulations with :doc:`fix qeq/reaxff<fix_qeq_reaxff>`,
|
||||
since with variable charges the electric potential can be known
|
||||
beforehand but the energy cannot. A small additional benefit is that
|
||||
the *energy* keyword requires an additional conversion to energy units
|
||||
which the *potential* keyword avoids. Thus, when the *potential*
|
||||
keyword is specified, the *energy* keyword must not be used. As with
|
||||
*energy*, the *potential* keyword is not allowed if the added field is a
|
||||
constant vector. The *potential* keyword is not supported by *fix
|
||||
efield/tip4p*.
|
||||
|
||||
----------
|
||||
|
||||
Restart, fix_modify, output, run start/stop, minimize info
|
||||
|
||||
@ -128,9 +128,12 @@ periodic cell dimensions less than 10 Angstroms.
|
||||
|
||||
This fix may be used in combination with :doc:`fix efield <fix_efield>`
|
||||
and will apply the external electric field during charge equilibration,
|
||||
but there may be only one fix efield instance used, it may only use a
|
||||
constant electric field, and the electric field vector may only have
|
||||
components in non-periodic directions.
|
||||
but there may be only one fix efield instance used and the electric field
|
||||
vector may only have components in non-periodic directions. Equal-style
|
||||
variables can be used for electric field vector components without any further
|
||||
settings. Atom-style variables can be used for spatially-varying electric field
|
||||
vector components, but the resulting electric potential must be specified
|
||||
as an atom-style variable using the *potential* keyword for `fix efield`.
|
||||
|
||||
Related commands
|
||||
""""""""""""""""
|
||||
|
||||
@ -67,7 +67,7 @@ Syntax
|
||||
bound(group,dir,region), gyration(group,region), ke(group,reigon),
|
||||
angmom(group,dim,region), torque(group,dim,region),
|
||||
inertia(group,dimdim,region), omega(group,dim,region)
|
||||
special functions = sum(x), min(x), max(x), ave(x), trap(x), slope(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label)
|
||||
special functions = sum(x), min(x), max(x), ave(x), trap(x), slope(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)
|
||||
feature functions = is_available(category,feature), is_active(category,feature), is_defined(category,id)
|
||||
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]
|
||||
atom vector = id, mass, type, mol, radius, q, x, y, z, vx, vy, vz, fx, fy, fz
|
||||
@ -532,7 +532,7 @@ variables.
|
||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| 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) |
|
||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Special functions | sum(x), min(x), max(x), ave(x), trap(x), slope(x), gmask(x), rmask(x), grmask(x,y), next(x), is_file(name), is_os(name), extract_setting(name), label2type(kind,label) |
|
||||
| Special functions | sum(x), min(x), max(x), ave(x), trap(x), slope(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) |
|
||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
| Feature functions | is_available(category,feature), is_active(category,feature), is_defined(category,id) |
|
||||
+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||||
@ -996,10 +996,17 @@ via the link in this paragraph.
|
||||
|
||||
The label2type(kind,label) function converts type labels into numeric
|
||||
types, using label maps created by the :doc:`labelmap <labelmap>` or
|
||||
:doc:`read_data <read_data>` commands. The first argument is the
|
||||
label map kind (atom, bond, angle, dihedral, or improper) and the
|
||||
second argument is the label. The function returns the corresponding
|
||||
numeric type.
|
||||
:doc:`read_data <read_data>` commands. The first argument is the label
|
||||
map kind (atom, bond, angle, dihedral, or improper) and the second
|
||||
argument is the label. The function returns the corresponding numeric
|
||||
type or triggers an error if the queried label does not exist.
|
||||
|
||||
.. versionadded:: TBD
|
||||
|
||||
The is_typelabel(kind,label) function has the same arguments as
|
||||
label2type(), but returns 1 if the type label has been assigned,
|
||||
otherwise it returns 0. This function can be used to check if a
|
||||
particular type label already exists in the simulation.
|
||||
|
||||
----------
|
||||
|
||||
|
||||
Reference in New Issue
Block a user