"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 wall/piston command :h3

[Syntax:]

fix ID group-ID wall/piston face ... keyword value ... :pre

ID, group-ID are documented in "fix"_fix.html command :ulb,l
wall/piston = style name of this fix command :l
face = {zlo} :l
zero or more keyword/value pairs may be appended :l
keyword = {pos} or {vel} or {ramp} or {units}  :l
  {pos} args = z
    z = z coordinate at which the piston begins (distance units)
  {vel} args = vz
    vz = final velocity of the piston (velocity units)
  {ramp} = use a linear velocity ramp from 0 to vz
  {temp} args = target damp seed extent
    target = target velocity for region immediately ahead of the piston
    damp = damping paramter (time units)
    seed = random number seed for langevin kicks
    extent = extent of thermostated region (distance units)
  {units} value = {lattice} or {box}
    {lattice} = the wall position is defined in lattice units
    {box} = the wall position is defined in simulation box units :pre
:ule

[Examples:]

fix xwalls all wall/piston zlo
fix walls all wall/piston zlo pos 1.0 0.0 0.0 vel 0.0 0.0 10.0 units box
fix top all wall/piston zlo vel 0.0 0.0 10.0 ramp :pre

[Description:]

Bound the simulation with a moving wall which reflect particles in the
specified group and drive the system with an effective infinite-mass
piston capable of driving shock waves.

A momentum mirror technique is used, which means that if an atom (or
the wall) moves such that an atom is outside the wall on a timestep by
a distance delta (e.g. due to "fix nve"_fix_nve.html), then it is put
back inside the face by the same delta, and the velocity relative to
the moving wall is flipped in z.  For instance, a stationary particle
hit with a piston wall with velocity vz, will end the timestep with a
velocity of 2*vz.

Currently the {face} keyword can only be {zlo}.  This creates a piston
moving in the positive z direction.  Particles with z coordinate less
than the wall position are reflected to a z coordinate greater than
the wall position.  If the piston velocity is vpz and the particle
velocity before reflection is vzi, the particle velocity after
reflection is -vzi + 2*vpz.

The initial position of the wall can be specified by the {pos} keyword.

The final velocity of the wall can be specified by the {vel} keyword

The {ramp} keyword will cause the wall/piston to adjust the velocity
linearly from zero velocity to {vel} over the course of the run. If
the {ramp} keyword is omitted then the wall/piston moves at a constant
velocity defined by {vel}.

The {temp} keyword will cause the region immediately in front of the
wall/piston to be thermostated with a Langevin thermostat.  This
region moves with the piston.  The damping and kicking are measured in
the reference frame of the piston.  So, a temperature of zero would
mean all particles were moving at exactly the speed of the
wall/piston.

The {units} keyword determines the meaning of the distance units used
to define a wall position, but only when a numeric constant is used.

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 spacings.

:line

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

No information about this fix is written to "binary restart
files"_restart.html.  None of the "fix_modify"_fix_modify.html options
are relevant to this fix.  No global or per-atom quantities are stored
by this fix for access by various "output
commands"_Section_howto.html#howoto_15.  No parameter of this fix can
be used with the {start/stop} keywords of the "run"_run.html command.
This fix is not invoked during "energy minimization"_minimize.html.

[Restrictions:]

This fix style is part of the SHOCK package.  It is only enabled if
LAMMPS was built with that package. See the "Making
LAMMPS"_Section_start.html#start_3 section for more info.

The face that has the wall/piston must be boundary type 's' 
(shrink-wrapped). The opposing face can be 
any boundary type other than periodic.

A wall/piston should not be used with rigid bodies such as those
defined by a "fix rigid" command.  This is because the wall/piston
displaces atoms directly rather than exerting a force on them.

[Related commands:]

"fix wall/reflect"_fix_wall.html command, "fix
append/atoms"_fix_append_atoms.html command

[Default:]

The keyword defaults are pos = 0, vel = 0, units = lattice.
