forked from lijiext/lammps
213 lines
9.6 KiB
HTML
213 lines
9.6 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 indent command
|
|
</H3>
|
|
<P><B>Syntax:</B>
|
|
</P>
|
|
<PRE>fix ID group-ID indent K keyword values ...
|
|
</PRE>
|
|
<UL><LI>ID, group-ID are documented in <A HREF = "fix.html">fix</A> command
|
|
|
|
<LI>indent = style name of this fix command
|
|
|
|
<LI>K = force constant for indenter surface (force/distance^2 units)
|
|
|
|
<LI>one or more keyword/value pairs may be appended
|
|
|
|
<LI>keyword = <I>sphere</I> or <I>cylinder</I> or <I>plane</I> or <I>vel</I> or <I>rstart</I> or <I>side</I> or <I>units</I>
|
|
|
|
<PRE> <I>sphere</I> args = x y z R
|
|
x,y,z = initial position of center of indenter (distance units)
|
|
R = sphere radius of indenter (distance units)
|
|
any of x,y,z,R can be a variable (see below)
|
|
<I>cylinder</I> args = dim c1 c2 R
|
|
dim = <I>x</I> or <I>y</I> or <I>z</I> = axis of cylinder
|
|
c1,c2 = coords of cylinder axis in other 2 dimensions (distance units)
|
|
R = cylinder radius of indenter (distance units)
|
|
any of c1,c2,R can be a variable (see below)
|
|
<I>plane</I> args = dim pos side
|
|
dim = <I>x</I> or <I>y</I> or <I>z</I> = plane perpendicular to this dimension
|
|
pos = position of plane in dimension x, y, or z (distance units)
|
|
pos can be a variable (see below)
|
|
side = <I>lo</I> or <I>hi</I>
|
|
<I>side</I> value = <I>in</I> or <I>out</I>
|
|
<I>in</I> = the indenter acts on particles inside the sphere or cylinder
|
|
<I>out</I> = the indenter acts on particles outside the sphere or cylinder
|
|
<I>units</I> value = <I>lattice</I> or <I>box</I>
|
|
lattice = the geometry is defined in lattice units
|
|
box = the geometry is defined in simulation box units
|
|
</PRE>
|
|
|
|
</UL>
|
|
<P><B>Examples:</B>
|
|
</P>
|
|
<PRE>fix 1 all indent 10.0 sphere 0.0 0.0 15.0 3.0
|
|
fix 1 all indent 10.0 sphere v_x v_y 0.0 v_radius side in
|
|
fix 2 flow indent 10.0 cylinder z 0.0 0.0 10.0 units box
|
|
</PRE>
|
|
<P><B>Description:</B>
|
|
</P>
|
|
<P>Insert an indenter within a simulation box. The indenter repels all
|
|
atoms that touch it, so it can be used to push into a material or as
|
|
an obstacle in a flow. Or it can be used as a constraining wall
|
|
around a simulation; see the discussion of the <I>side</I> keyword below.
|
|
</P>
|
|
<P>The indenter can either be spherical or cylindrical or planar. You
|
|
must set one of those 3 keywords.
|
|
</P>
|
|
<P>A spherical indenter exerts a force of magnitude
|
|
</P>
|
|
<PRE>F(r) = - K (r - R)^2
|
|
</PRE>
|
|
<P>on each atom where <I>K</I> is the specified force constant, <I>r</I> is the
|
|
distance from the atom to the center of the indenter, and <I>R</I> is the
|
|
radius of the indenter. The force is repulsive and F(r) = 0 for <I>r</I> >
|
|
<I>R</I>.
|
|
</P>
|
|
<P>A cylindrical indenter exerts the same force, except that <I>r</I> is the
|
|
distance from the atom to the center axis of the cylinder. The
|
|
cylinder extends infinitely along its axis.
|
|
</P>
|
|
<P>Spherical and cylindrical indenters account for periodic boundaries in
|
|
two ways. First, the center point of a spherical indenter (x,y,z) or
|
|
axis of a cylindrical indenter (c1,c2) is remapped back into the
|
|
simulation box, if the box is periodic in a particular dimension.
|
|
This occurs every timestep if the indenter geometry is specified with
|
|
a variable (see below), e.g. it is moving over time. Second, the
|
|
calculation of distance to the indenter center or axis accounts for
|
|
periodic boundaries. Both of these mean that an indenter can
|
|
effectively move through and straddle one or more periodic boundaries.
|
|
</P>
|
|
<P>A planar indenter is really an axis-aligned infinite-extent wall
|
|
exerting the same force on atoms in the system, where <I>R</I> is the
|
|
position of the plane and <I>r-R</I> is the distance from the plane. If
|
|
the <I>side</I> parameter of the plane is specified as <I>lo</I> then it will
|
|
indent from the lo end of the simulation box, meaning that atoms with
|
|
a coordinate less than the plane's current position will be pushed
|
|
towards the hi end of the box and atoms with a coordinate higher than
|
|
the plane's current position will feel no force. Vice versa if <I>side</I>
|
|
is specified as <I>hi</I>.
|
|
</P>
|
|
<P>Any of the 4 quantities defining a spherical indenter's geometry can
|
|
be specified as an equal-style <A HREF = "variable.html">variable</A>, namely <I>x</I>,
|
|
<I>y</I>, <I>z</I>, or <I>R</I>. Similarly, for a cylindrical indenter, any of <I>c1</I>,
|
|
<I>c2</I>, or <I>R</I>, can be a variable. For a planar indenter, <I>pos</I> can be
|
|
a variable. 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 define the
|
|
indenter geometry.
|
|
</P>
|
|
<P>Note that 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 indenter properties that
|
|
change as a function of time or span consecutive runs in a continuous
|
|
fashion. For the latter, see the <I>start</I> and <I>stop</I> keywords of the
|
|
<A HREF = "run.html">run</A> command and the <I>elaplong</I> keyword of <A HREF = "thermo_style.html">thermo_style
|
|
custom</A> for details.
|
|
</P>
|
|
<P>For example, if a spherical indenter's x-position is specfied as v_x,
|
|
then this variable definition will keep it's center at a relative
|
|
position in the simulation box, 1/4 of the way from the left edge to
|
|
the right edge, even if the box size changes:
|
|
</P>
|
|
<PRE>variable x equal "xlo + 0.25*lx"
|
|
</PRE>
|
|
<P>Similarly, these variable definitions will move the indenter at a
|
|
constant velocity:
|
|
</P>
|
|
<PRE>variable x0 equal 2.5
|
|
variable vx equal 5.0
|
|
variable x equal "v_x0 + step*dt*v_vx"
|
|
</PRE>
|
|
<P>If a spherical indenter's radius is specified as v_r, then these
|
|
variable definitions will grow the size of the indenter at a specfied
|
|
rate.
|
|
</P>
|
|
<PRE>variable r0 equal 0.0
|
|
variable rate equal 1.0
|
|
variable r equal "v_r0 + step*dt*v_rate"
|
|
</PRE>
|
|
<P>If the <I>side</I> keyword is specified as <I>out</I>, which is the default,
|
|
then particles outside the indenter are pushded away from its outer
|
|
surface, as described above. This only applies to spherical or
|
|
cylindrical indenters. If the <I>side</I> keyword is specified as <I>in</I>,
|
|
the action of the indenter is reversed. Particles inside the indenter
|
|
are pushed away from its inner surface. In other words, the indenter
|
|
is now a containing wall that traps the particles inside it. If the
|
|
radius shrinks over time, it will squeeze the particles.
|
|
</P>
|
|
<P>The <I>units</I> keyword determines the meaning of the distance units used
|
|
to define the indenter geometry. A <I>box</I> value selects standard
|
|
distance units as defined by the <A HREF = "units.html">units</A> command,
|
|
e.g. Angstroms for units = real or metal. A <I>lattice</I> value means the
|
|
distance units are in lattice spacings. The <A HREF = "lattice.html">lattice</A>
|
|
command must have been previously used to define the lattice spacing.
|
|
The (x,y,z) coords of the indenter position are scaled by the x,y,z
|
|
lattice spacings respectively. The radius of a spherical or
|
|
cylindrical indenter is scaled by the x lattice spacing.
|
|
</P>
|
|
<P>Note that the units keyword only affects indenter geometry parameters
|
|
specified directly with numbers, not those specified as variables. In
|
|
the latter case, you should use the <I>xlat</I>, <I>ylat</I>, <I>zlat</I> keywords of
|
|
the <A HREF = "thermo_style.html">thermo_style</A> command if you want to include
|
|
lattice spacings in a variable formula.
|
|
</P>
|
|
<P>The force constant <I>K</I> is not affected by the <I>units</I> keyword. It is
|
|
always in force/distance^2 units where force and distance are defined
|
|
by the <A HREF = "units.html">units</A> command. If you wish K to be scaled by the
|
|
lattice spacing, you can define K with a variable whose formula
|
|
contains <I>xlat</I>, <I>ylat</I>, <I>zlat</I> keywords of the
|
|
<A HREF = "thermo_style.html">thermo_style</A> command, e.g.
|
|
</P>
|
|
<PRE>variable k equal 100.0/xlat/xlat
|
|
fix 1 all indent $k sphere ...
|
|
</PRE>
|
|
<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 energy of interaction between atoms and the indenter to
|
|
the system's potential energy as part of <A HREF = "thermo_style.html">thermodynamic
|
|
output</A>. The energy of each particle interacting
|
|
with the indenter is K/3 (r - R)^3.
|
|
</P>
|
|
<P>This fix computes a global scalar energy and a global 3-vector of
|
|
forces (on the indenter), which can be accessed by various <A HREF = "Section_howto.html#4_15">output
|
|
commands</A>. The scalar and vector values
|
|
calculated by this fix are "extensive".
|
|
</P>
|
|
<P>The forces due to this fix are imposed during an energy minimization,
|
|
invoked by the <A HREF = "minimize.html">minimize</A> command. Note that if you
|
|
define the indenter geometry with a variable using a time-dependent
|
|
formula, LAMMPS uses the iteration count in the minimizer as the
|
|
timestep. But it is almost certainly a bad idea to have the indenter
|
|
change its position or size during a minimization. LAMMPS does not
|
|
check if you have done this.
|
|
</P>
|
|
<P>IMPORTANT NOTE: If you want the atom/indenter interaction energy 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> none
|
|
</P>
|
|
<P><B>Related commands:</B> none
|
|
</P>
|
|
<P><B>Default:</B>
|
|
</P>
|
|
<P>The option defaults are side = out and units = lattice.
|
|
</P>
|
|
</HTML>
|