forked from lijiext/lammps
171 lines
7.2 KiB
HTML
171 lines
7.2 KiB
HTML
<HTML>
|
|
<CENTER><A HREF = "http://lammps.sandia.gov">LAMMPS WWW Site</A> - <A HREF = "Manual.html">LAMMPS Documentation</A> - <A HREF = "Section_commands.html#comm">LAMMPS Commands</A>
|
|
</CENTER>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<HR>
|
|
|
|
<H3>fix efield command
|
|
</H3>
|
|
<P><B>Syntax:</B>
|
|
</P>
|
|
<PRE>fix ID group-ID efield ex ey ez keyword value ...
|
|
</PRE>
|
|
<UL><LI>ID, group-ID are documented in <A HREF = "fix.html">fix</A> command
|
|
|
|
<LI>efield = style name of this fix command
|
|
|
|
<LI>ex,ey,ez = E-field component values (electric field units)
|
|
|
|
<LI>any of ex,ey,ez can be a variable (see below)
|
|
|
|
<LI>zero or more keyword/value pairs may be appended to args
|
|
|
|
<LI>keyword = <I>region</I> or <I>energy</I>
|
|
|
|
<PRE> <I>region</I> value = region-ID
|
|
region-ID = ID of region atoms must be in to have added force
|
|
<I>energy</I> value = v_name
|
|
v_name = variable with name that calculates the potential energy of each atom in the added E-field
|
|
</PRE>
|
|
|
|
</UL>
|
|
<P><B>Examples:</B>
|
|
</P>
|
|
<PRE>fix kick external-field efield 1.0 0.0 0.0
|
|
fix kick external-field efield 0.0 0.0 v_oscillate
|
|
</PRE>
|
|
<P><B>Description:</B>
|
|
</P>
|
|
<P>Add a force F = qE to each charged atom in the group due to an
|
|
external electric field being applied to the system. If the system
|
|
contains point-dipoles, also add a torque on the dipoles due to the
|
|
external electric field.
|
|
</P>
|
|
<P>For charges, any of the 3 quantities defining the E-field components
|
|
can be specified as an equal-style or atom-style
|
|
<A HREF = "variable.html">variable</A>, namely <I>ex</I>, <I>ey</I>, <I>ez</I>. If the value is a
|
|
variable, it should be specified as v_name, where name is the variable
|
|
name. In this case, the variable will be evaluated each timestep, and
|
|
its value used to determine the E-field component.
|
|
</P>
|
|
<P>For point-dipoles, equal-style variables can be used, but atom-style
|
|
variables are not currently supported, since they imply a spatial
|
|
gradient in the electric field which means additional terms with
|
|
gradients of the field are required for the force and torque on
|
|
dipoles.
|
|
</P>
|
|
<P>Equal-style variables can specify formulas with various mathematical
|
|
functions, and include <A HREF = "thermo_style.html">thermo_style</A> command
|
|
keywords for the simulation box parameters and timestep and elapsed
|
|
time. Thus it is easy to specify a time-dependent E-field.
|
|
</P>
|
|
<P>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 E-field
|
|
with optional time-dependence as well.
|
|
</P>
|
|
<P>If the <I>region</I> keyword is used, the atom must also be in the
|
|
specified geometric <A HREF = "region.html">region</A> in order to have force added
|
|
to it.
|
|
</P>
|
|
<HR>
|
|
|
|
<P>Adding a force or torque to atoms implies a change in their potential
|
|
energy as they move or rotate due to the applied E-field.
|
|
</P>
|
|
<P>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).
|
|
</P>
|
|
<P>The <I>energy</I> keyword is not allowed if the added field is a constant
|
|
vector (ex,ey,ez), with all components defined as numeric constants
|
|
and not as variables. This is because LAMMPS can compute the energy
|
|
for each charged particle directly as E = -x dot qE = -q (x*ex + y*ey
|
|
+ z*ez), so that -Grad(E) = F. Similarly for point-dipole particles
|
|
the energy can be computed as E = -mu dot E = -(mux*ex + muy*ey +
|
|
muz*ez).
|
|
</P>
|
|
<P>The <I>energy</I> keyword is optional if the added force is defined with
|
|
one or more variables, and if you are performing dynamics via the
|
|
<A HREF = "run.html">run</A> command. If the keyword is not used, LAMMPS will set
|
|
the energy to 0.0, which is typically fine for dynamics.
|
|
</P>
|
|
<P>The <I>energy</I> keyword 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
|
|
does not rotate dipoles, so you should not expect to be able to
|
|
minimize the orientation of dipoles in an applied electric field.
|
|
</P>
|
|
<P>The <I>energy</I> keyword specifies the name of an atom-style
|
|
<A HREF = "variable.html">variable</A> which is used to compute the energy of each
|
|
atom as function of its position. Like variables used for <I>ex</I>, <I>ey</I>,
|
|
<I>ez</I>, the energy variable is specified as v_name, where name is the
|
|
variable name.
|
|
</P>
|
|
<P>Note that when the <I>energy</I> keyword is used during an energy
|
|
minimization, you must insure that the formula defined for the
|
|
atom-style <A HREF = "variable.html">variable</A> is consistent with the force
|
|
variable formulas, i.e. that -Grad(E) = F. For example, if the force
|
|
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.
|
|
</P>
|
|
<HR>
|
|
|
|
<P><B>Restart, fix_modify, output, run start/stop, minimize info:</B>
|
|
</P>
|
|
<P>No information about this fix is written to <A HREF = "restart.html">binary restart
|
|
files</A>.
|
|
</P>
|
|
<P>The <A HREF = "fix_modify.html">fix_modify</A> <I>energy</I> option is supported by this
|
|
fix to add the potential "energy" inferred by the added force due to
|
|
the electric field to the system's potential energy as part of
|
|
<A HREF = "thermo_style.html">thermodynamic output</A>. This is a fictitious
|
|
quantity but is needed so that the <A HREF = "minimize.html">minimize</A> 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 due to the electric field.
|
|
</P>
|
|
<P>This fix computes a global scalar and a global 3-vector of forces,
|
|
which can be accessed by various <A HREF = "Section_howto.html#howto_15">output
|
|
commands</A>. The scalar is the potential
|
|
energy discussed above. The vector is the total force added to the
|
|
group of atoms. The scalar and vector values calculated by this fix
|
|
are "extensive".
|
|
</P>
|
|
<P>No parameter of this fix can be used with the <I>start/stop</I> keywords of
|
|
the <A HREF = "run.html">run</A> command.
|
|
</P>
|
|
<P>The forces due to this fix are imposed during an energy minimization,
|
|
invoked by the <A HREF = "minimize.html">minimize</A> 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.
|
|
</P>
|
|
<P>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
|
|
<A HREF = "fix_modify.html">fix_modify</A> <I>energy</I> option for this fix.
|
|
</P>
|
|
<P><B>Restrictions:</B>
|
|
</P>
|
|
<P>This fix is part of the MISC package. It is only enabled if LAMMPS
|
|
was built with that package. See the <A HREF = "Section_start.html#start_3">Making
|
|
LAMMPS</A> section for more info.
|
|
</P>
|
|
<P><B>Related commands:</B>
|
|
</P>
|
|
<P><A HREF = "fix_addforce.html">fix addforce</A>
|
|
</P>
|
|
<P><B>Default:</B> none
|
|
</P>
|
|
</HTML>
|