"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 indent command :h3

[Syntax:]

fix ID group-ID indent k keyword values ... :pre

ID, group-ID are documented in "fix"_fix.html command :ulb,l
indent = style name of this fix command :l
k = force constant for indenter surface (force/distance^2 units) :l
one or more keyword/value pairs may be appended :l
keyword = {sphere} or {cylinder} or {plane} or {vel} or {rstart} or {side} or {units} :l
  {sphere} args = x y z R
    x,y,z = initial position of center of indenter (distance units)
    R = sphere radius of indenter (distance units)
  {cylinder} args = dim c1 c2 R
    dim = {x} or {y} or {z} = axis of cylinder
    c1,c2 = coords of cylinder axis in other 2 dimensions (distance units)
    R = cylinder radius of indenter (distance units)
  {plane} args = dim pos side
    dim = {x} or {y} or {z} = plane perpendicular to this dimension
    pos = position of plane in dimension x, y, or z (distance units)
    side = {lo} or {hi}
  {vel} args = vx vy vz
    vx,vy,vz = velocity of center of indenter (velocity units)
  {rstart} value = R0
    R0 = sphere or cylinder radius at start of run (distance units)
    R is value at end of run, so indenter expands/contracts over time
  {side} value = {in} or {out}
    {in} = the indenter acts on particles inside the sphere or cylinder
    {out} = the indenter acts on particles outside the sphere or cylinder
  {units} value = {lattice} or {box}
    lattice = the geometry is defined in lattice units
    box = the geometry is defined in simulation box units :pre
:ule

[Examples:]

fix 1 all indent 10.0 sphere 0.0 0.0 15.0 3.0 vel 0.0 0.0 -1.0
fix 2 flow indent 10.0 cylinder z 0.0 0.0 10.0 units box :pre

[Description:]

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 {side} keyword below.

The indenter can either be spherical or cylindrical or planar.  You
must set one of those 3 keywords.

A spherical indenter exerts a force of magnitude

F(r) = - k (r - R)^2 :pre

on each atom where {k} is the specified force constant, {r} is the
distance from the atom to the center of the indenter, and {R} is the
radius of the indenter.  The force is repulsive and F(r) = 0 for {r} >
{R}.  The calculation of distance to the indenter center accounts
for periodic boundaries, which means the indenter can effectively
straddle one or more periodic boundaries.

A cylindrical indenter exerts the same force, except that {r} is the
distance from the atom to the center axis of the cylinder.  The
cylinder extends infinitely along its axis.  The calculation of
distance to the indenter axis accounts for periodic boundaries, which
means the indenter can effectively straddle one or more periodic
boundaries.

A planar indenter is really an axis-aligned infinite-extent wall
exerting the same force on atoms in the system, where {R} is the
position of the plane and {r-R} is the distance from the plane.  If
the {side} parameter of the plane is specified as {lo} 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 {side}
is specified as {hi}.

If the {vel} keyword is specified, the center (or axis or position) of
the spherical (or cylindrical or planar) indenter will move during the
simulation, based on its initial position (x,y,z), the specified
(vx,vy,vz), and the time elapsed since the beginning of the
simulation.  For periodic systems and spherical or cylindrical
indenters, the new position of the center or axis is wrapped back into
the periodic box as needed.  See the note below about making the
indenter move continuously across multiple runs.

If the {rstart} keyword is specified, then the radius of the indenter
is a time-dependent quantity.  This only applies to spherical or
cylindrical indenters.  R0 is the value assigned at the start of the
run; R is the value at the end.  At intermediate times, the radius is
linearly interpolated between these two values.  This option can be
used, for example, to grow/shrink a void within the simulation box.
See the note below about making the radius change continuously across
multiple runs.

If the {side} keyword is specified as {out}, 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 {side} keyword is specified as {in},
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.

The {units} keyword determines the meaning of the distance units used
to define the indenter.  A {box} value selects standard distance units
as defined by the "units"_units.html command, e.g. Angstroms for units
= real or metal.  A {lattice} value means the distance units are in
lattice spacings.  The "lattice"_lattice.html command must have been
previously used to define the lattice spacing.  Note that the units
choice affects not only the indenter's physical geometry, but also its
velocity and force constant since they are defined in terms of
distance as well.

[Restart, fix_modify, output, run start/stop, minimize info:]

No information about this fix is written to "binary restart
files"_restart.html.

The "fix_modify"_fix_modify.html {energy} 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 "thermodynamic
output"_thermo_style.html.  The energy of each particle interacting
with the indenter is K/3 (r - R)^3.

This fix computes a scalar energy and a 3-vector of forces (on the
indenter), which can be accessed by various "output
commands"_Section_howto.html#4_15.  The scalar and vector values
calculated by this fix are "extensive", meaning they scale with the
number of atoms in the simulation.

This fix can adjust the indenter position and radius over multiple
runs, using the {start} and {stop} keywords of the "run"_run.html
command.  See the "run"_run.html command for details of how to do
this.  If you do not do this, the indenter position and readius will
be reset to their specified initial values at the beginning of each
run.

The forces due to this fix are imposed during an energy minimization,
invoked by the "minimize"_minimize.html command.  The {rstart} keyword
does not change the indenter radius during an energy minimization; the
indenter always has a radius of its final value R in that case.

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 "fix_modify"_fix_modify.html
{energy} option for this fix.

[Restrictions:] none

[Related commands:] none

[Default:]

The option defaults are vel = 0,0,0, side = out, and units = lattice.
