lammps/doc/fix_wall.txt

221 lines
9.7 KiB
Plaintext
Raw Normal View History

"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
fix wall/harmonic command :h3
[Syntax:]
fix ID group-ID style keyword values ... :pre
ID, group-ID are documented in "fix"_fix.html command :ulb,l
style = {wall/lj93} or {wall/lj126} or {wall/colloid} or {wall/harmonic} :l
one or more keyword/value pairs may be appended :l
keyword = {xlo} or {xhi} or {ylo} or {yhi} or {zlo} or {zhi} or {vel} or {wiggle/sin} or {wiggle/cos} or {units} :l
{xlo}, {xhi}, {ylo}, {yhi}, {zlo}, {zhi} values = coord epsilon sigma cutoff
coord = position of wall (distance units)
epsilon = strength factor for wall-particle interaction (energy or energy/distance^2 units)
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)
{wiggle/sin} values = amplitude period
amplitude = size of oscillation (distance units)
period = time of oscillation (time units)
{wiggle/cos} values = amplitude period
amplitude = size of oscillation (distance units)
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
:ule
[Examples:]
fix wallhi all wall/lj93 xhi 10.0 1.0 1.0 2.5
fix wallhi all wall/lj126 xhi 23.2 1.0 1.0 2.5 vel 1.0 units box
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)
For style {wall/harmonic}, the energy E is given by a harmonic spring
potential:
:c,image(Eqs/fix_wall_harmonic.jpg)
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
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.
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
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.
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.
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).
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
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.
If the {wiggle/sin} keyword is specified, the position of all walls
will oscillate sinusoidally during the simulation in the perpendicular
direction, according to the equation:
position = coord + A sin(omega*delta) :pre
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:
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.
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.
[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.
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
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. 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.
No parameter of this fix can be used with the {start/stop} keywords of
the "run"_run.html command.
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.
You cannot use both the {vel} and either of the {wiggle} keywords
together.
[Related commands:]
"fix wall/reflect"_fix_wall_reflect.html,
"fix wall/gran"_fix_wall_gran.html,
"fix wall/region"_fix_wall_region.html
[Default:]
The option defaults are no velocity, no wiggle, and units = lattice.