2009-11-18 08:30:50 +08:00
|
|
|
"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/lj93 command :h3
|
|
|
|
fix wall/lj126 command :h3
|
|
|
|
fix wall/colloid command :h3
|
2010-01-09 07:03:13 +08:00
|
|
|
fix wall/harmonic command :h3
|
2009-11-18 08:30:50 +08:00
|
|
|
|
|
|
|
[Syntax:]
|
|
|
|
|
|
|
|
fix ID group-ID style keyword values ... :pre
|
|
|
|
|
|
|
|
ID, group-ID are documented in "fix"_fix.html command :ulb,l
|
2010-01-09 06:54:29 +08:00
|
|
|
style = {wall/lj93} or {wall/lj126} or {wall/colloid} or {wall/harmonic} :l
|
2009-11-18 08:30:50 +08:00
|
|
|
one or more keyword/value pairs may be appended :l
|
2009-11-19 00:14:23 +08:00
|
|
|
keyword = {xlo} or {xhi} or {ylo} or {yhi} or {zlo} or {zhi} or {vel} or {wiggle/sin} or {wiggle/cos} or {units} :l
|
2009-11-18 08:30:50 +08:00
|
|
|
{xlo}, {xhi}, {ylo}, {yhi}, {zlo}, {zhi} values = coord epsilon sigma cutoff
|
|
|
|
coord = position of wall (distance units)
|
2010-01-09 06:54:29 +08:00
|
|
|
epsilon = strength factor for wall-particle interaction (energy or energy/distance^2 units)
|
2009-11-18 08:30:50 +08:00
|
|
|
sigma = size factor for wall-particle interaction (distance units)
|
|
|
|
cutoff = distance from wall at which wall-particle interaction is cut off (distance units)
|
|
|
|
{vel} value = v
|
|
|
|
v = velocity of wall in perpendicular direction (velocity units)
|
2009-12-04 02:37:34 +08:00
|
|
|
{wiggle/sin} values = amplitude period
|
|
|
|
amplitude = size of oscillation (distance units)
|
|
|
|
period = time of oscillation (time units)
|
|
|
|
{wiggle/cos} values = amplitude period
|
2009-11-18 08:30:50 +08:00
|
|
|
amplitude = size of oscillation (distance units)
|
2009-11-19 00:14:23 +08:00
|
|
|
period = time of oscillation (time units)
|
|
|
|
{units} value = {lattice} or {box}
|
|
|
|
lattice = the wall is defined in lattice units
|
|
|
|
box = the wall is defined in simulation box units :pre
|
2009-11-18 08:30:50 +08:00
|
|
|
:ule
|
|
|
|
|
|
|
|
[Examples:]
|
|
|
|
|
|
|
|
fix wallhi all wall/lj93 xhi 10.0 1.0 1.0 2.5
|
2009-11-19 00:14:23 +08:00
|
|
|
fix wallhi all wall/lj126 xhi 23.2 1.0 1.0 2.5 vel 1.0 units box
|
2009-11-18 08:30:50 +08:00
|
|
|
fix zwalls all wall/colloid zlo 0.0 1.0 1.0 0.858 zhi 40.0 1.0 1.0 0.858 :pre
|
|
|
|
|
|
|
|
[Description:]
|
|
|
|
|
|
|
|
Bound the simulation domain on one or more of its faces with a flat
|
|
|
|
wall that interacts with the atoms in the group by generating a force
|
|
|
|
on the atom in a direction perpendicular to the wall. The energy of
|
|
|
|
wall-particle interactions depends on the style.
|
|
|
|
|
|
|
|
For style {wall/lj93}, the energy E is given by the 9/3 potential:
|
|
|
|
|
|
|
|
:c,image(Eqs/fix_wall_lj93.jpg)
|
|
|
|
|
|
|
|
For style {wall/lj126}, the energy E is given by the 12/6 potential:
|
|
|
|
|
|
|
|
:c,image(Eqs/pair_lj.jpg)
|
|
|
|
|
|
|
|
For style {wall/colloid}, the energy E is given by an integrated form of
|
|
|
|
the "pair_style colloid"_pair_colloid.html potential:
|
|
|
|
|
|
|
|
:c,image(Eqs/fix_wall_colloid.jpg)
|
|
|
|
|
2010-01-09 06:54:29 +08:00
|
|
|
For style {wall/harmonic}, the energy E is given by a harmonic spring
|
|
|
|
potential:
|
|
|
|
|
|
|
|
:c,image(Eqs/fix_wall_harmonic.jpg)
|
|
|
|
|
2009-11-18 08:30:50 +08:00
|
|
|
In all cases, {r} is the distance from the particle to the wall at
|
|
|
|
position {coord}, and Rc is the {cutoff} distance at which the
|
|
|
|
particle and wall no longer interact. The energy of the wall
|
|
|
|
potential is shifted so that the wall-particle interaction energy is
|
|
|
|
0.0 at the cutoff distance.
|
|
|
|
|
|
|
|
For the {wall/lj93} and {wall/lj126} styles, {epsilon} and {sigma} are
|
|
|
|
the usual Lennard-Jones parameters, which determine the strength and
|
2010-01-09 06:54:29 +08:00
|
|
|
size of the particle as it interacts with the wall. Epsilon has
|
|
|
|
energy units. Note that this {epsilon} and {sigma} may be different
|
|
|
|
than any {epsilon} or {sigma} values defined for a pair style that
|
|
|
|
computes particle-particle interactions.
|
2009-11-18 08:30:50 +08:00
|
|
|
|
|
|
|
The {wall/lj93} interaction is derived by integrating over a 3d
|
|
|
|
half-lattice of Lennard-Jones 12/6 particles. The {wall/lj126}
|
|
|
|
interaction is effectively a harder, more repulsive wall interaction.
|
|
|
|
|
|
|
|
For the {wall/colloid} style, {epsilon} is effectively a Hamaker
|
2010-01-09 06:54:29 +08:00
|
|
|
constant with energy units for the colloid-wall interaction, {R} is
|
|
|
|
the radius of the colloid particle, {D} is the distance from the
|
|
|
|
surface of the colloid particle to the wall (r-R), and {sigma} is the
|
|
|
|
size of a constituent LJ particle inside the colloid particle. Note
|
|
|
|
that the cutoff distance Rc in this case is the distance from the
|
|
|
|
colloid particle center to the wall.
|
2009-11-18 08:30:50 +08:00
|
|
|
|
|
|
|
The {wall/colloid} interaction is derived by integrating over
|
|
|
|
constituent LJ particles of size {sigma} within the colloid particle
|
|
|
|
and a 3d half-lattice of Lennard-Jones 12/6 particles of size {sigma}
|
|
|
|
in the wall.
|
|
|
|
|
2010-01-09 06:54:29 +08:00
|
|
|
For the {wall/harmonic} style, {epsilon} is effectively the spring
|
|
|
|
constant K, and has units (energy/distance^2). The input parameter
|
|
|
|
{sigma} is ignored. The minimum energy position of the harmonic
|
|
|
|
spring is at the {cutoff}. This is a repulsive-only spring since the
|
|
|
|
interaction is truncated at the {cutoff}
|
|
|
|
|
|
|
|
IMPORTANT NOTE: For all of the styles, you must insure that r is
|
|
|
|
always > 0 for all particles in the group, or LAMMPS will generate an
|
|
|
|
error. This means you cannot start your simulation with particles at
|
|
|
|
the wall position {coord} (r = 0) or with particles on the wrong side
|
|
|
|
of the wall (r < 0). For the {wall/lj93} and {wall/lj126} styles, the
|
|
|
|
energy of the wall/particle interaction (and hence the force on the
|
|
|
|
particle) blows up as r -> 0. The {wall/colloid} style is even more
|
|
|
|
restrictive, since the energy blows up as D = r-R -> 0. This means
|
|
|
|
the finite-size particles of radius R must be a distance larger than R
|
|
|
|
from the wall position {coord}. The {harmonic} style is a softer
|
|
|
|
potential and does not blow up as r -> 0, but you must use a large
|
|
|
|
enough {epsilon} that particles always reamin on the correct side of
|
|
|
|
the wall (r > 0).
|
|
|
|
|
2009-11-18 08:30:50 +08:00
|
|
|
If the {vel} keyword is specified, the position of all walls will move
|
|
|
|
during the simulation in a perpendicular direction, based on their
|
|
|
|
initial {coord} position, the specified velocity {vel}, and the time
|
2009-12-04 02:37:34 +08:00
|
|
|
elapsed since the fix was specified. A positive velocity means each
|
|
|
|
wall moves inward, towards the center of the box. I.e. an {xlo} wall
|
|
|
|
will move in the +x direction and an {xhi} wall will move in the -x
|
|
|
|
direction. A negative velocity means each wall moves outward, away
|
|
|
|
from the center of the box. If you want different walls to move with
|
|
|
|
different velocities, then you need to use multiple fix wall commands.
|
2009-11-18 08:30:50 +08:00
|
|
|
|
2009-11-18 23:22:46 +08:00
|
|
|
If the {wiggle/sin} keyword is specified, the position of all walls
|
|
|
|
will oscillate sinusoidally during the simulation in the perpendicular
|
2009-11-18 08:30:50 +08:00
|
|
|
direction, according to the equation:
|
|
|
|
|
2009-12-04 02:37:34 +08:00
|
|
|
position = coord + A sin(omega*delta) :pre
|
2009-11-18 23:22:46 +08:00
|
|
|
|
|
|
|
If the {wiggle/cos} keyword is specified, the position of all walls
|
|
|
|
will oscillate sinusoidally during the simulation in the perpendicular
|
|
|
|
direction, according to the equation:
|
|
|
|
|
2009-12-04 02:37:34 +08:00
|
|
|
position = coord + A (1 - cos(omega*delta)) :pre
|
|
|
|
|
|
|
|
In both cases, {coord} is the specified initial position of the wall,
|
|
|
|
{A} is the {amplitude}, {omega} is 2 PI / {period}, and {delta} is the
|
|
|
|
time elapsed since the fix was specified. A positive amplitude means
|
|
|
|
each wall initially moves inward, towards the center of the box.
|
|
|
|
I.e. an {xlo} wall will move initially in the +x direction and an
|
|
|
|
{xhi} wall will move initially in the -x direction. A negative
|
|
|
|
velocity means each wall moves initially outward, away from the center
|
|
|
|
of the box. Note that the {wiggle/sin} option oscillates with
|
|
|
|
amplitude {A} around the pos0 position and the velocity of the wall is
|
|
|
|
a maximum at time 0. By contrast, for the {wiggle/cos} option the
|
|
|
|
wall moves up to {2A} away from pos0 in one direction and the velocity
|
|
|
|
of the wall is 0 at time 0. If you want different walls to oscillate
|
|
|
|
with different amplitudes or periods, then you need to use multiple
|
|
|
|
fix wall commands.
|
2009-11-18 08:30:50 +08:00
|
|
|
|
2009-11-19 00:14:23 +08:00
|
|
|
The {units} keyword determines the meaning of the distance units used
|
|
|
|
to define the position of the wall and its velocity and wiggle
|
|
|
|
amplitude. 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 with the
|
|
|
|
{lattice} option, the wall's position is specified in lattice
|
|
|
|
spacings, the wall's velocity is specified in lattice spacings per
|
|
|
|
time, and the wall's oscillation amplitude is specified in lattice
|
|
|
|
spacings. Each of these 3 quantities may be dependent on the x,y,z
|
|
|
|
dimension, since the lattice spacings can be different in x,y,z.
|
|
|
|
|
2009-11-18 08:30:50 +08:00
|
|
|
[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 each wall to
|
|
|
|
the system's potential energy as part of "thermodynamic
|
|
|
|
output"_thermo_style.html.
|
|
|
|
|
2009-11-18 09:05:23 +08:00
|
|
|
This fix computes a scalar energy and a 6-length vector of forces (one
|
|
|
|
force magnitude per wall), which can be accessed by various "output
|
2009-11-18 08:30:50 +08:00
|
|
|
commands"_Section_howto.html#4_15. The scalar and vector values
|
|
|
|
calculated by this fix are "extensive", meaning they scale with the
|
2009-11-18 09:05:23 +08:00
|
|
|
number of atoms in the simulation. Note that the scalar energy is the
|
|
|
|
sum of interactions with all defined walls. If you want the energy on
|
|
|
|
a per-wall basis, you need to use multiple fix wall commands. The 6
|
|
|
|
vector quantities are the force on the {xlo} wall, the {xhi} wall,
|
|
|
|
{ylo}, {yhi}, {zlo}, {zhi}. These values will only be non-zero if the
|
|
|
|
corresponding wall is defined. Note that an outward force on a wall
|
|
|
|
will be a negative value for {lo} walls and a positive value for {hi}
|
|
|
|
walls.
|
2009-11-18 08:30:50 +08:00
|
|
|
|
2009-12-04 02:37:34 +08:00
|
|
|
No parameter of this fix can be used with the {start/stop} keywords of
|
|
|
|
the "run"_run.html command.
|
2009-11-18 08:30:50 +08:00
|
|
|
|
|
|
|
The forces due to this fix are imposed during an energy minimization,
|
|
|
|
invoked by the "minimize"_minimize.html command.
|
|
|
|
|
|
|
|
IMPORTANT NOTE: If you want the atom/wall 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:]
|
|
|
|
|
|
|
|
Any dimension (xyz) that has a wall must be non-periodic.
|
|
|
|
|
2009-12-04 02:37:34 +08:00
|
|
|
You cannot use both the {vel} and either of the {wiggle} keywords
|
|
|
|
together.
|
2009-11-18 08:30:50 +08:00
|
|
|
|
|
|
|
[Related commands:]
|
|
|
|
|
2010-01-09 06:54:29 +08:00
|
|
|
"fix wall/reflect"_fix_wall_reflect.html,
|
|
|
|
"fix wall/gran"_fix_wall_gran.html,
|
|
|
|
"fix wall/region"_fix_wall_region.html
|
2009-11-18 08:30:50 +08:00
|
|
|
|
|
|
|
[Default:]
|
|
|
|
|
2009-12-03 01:27:00 +08:00
|
|
|
The option defaults are no velocity, no wiggle, and units = lattice.
|