"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 orient/fcc command :h3

fix ID group-ID orient/fcc nstats dir alat dE cutlo cuthi file0 file1 :pre

ID, group-ID are documented in "fix"_fix.html command
nstats = print stats every this many steps, 0 = never
dir = 0/1 for which crystal is used as reference
alat = fcc cubic lattice constant (distance units)
dE = energy added to each atom (energy units)
cutlo,cuthi = values between 0.0 and 1.0, cutlo < cuthi
file0,file1 = files that specify orientation of each grain :ul

[Examples:]

fix gb all orient/fcc 0 1 4.032008 0.001 0.25 0.75 xi.vec chi.vec :pre

[Description:]

The fix applies an orientation-dependent force to atoms near a planar
grain boundary which can be used to induce grain boundary migration
(in the direction perpendicular to the grain boundary plane).  The
motivation and explanation of this force and its application are
described in "(Janssens)"_#Janssens.  The force is only applied to
atoms in the fix group.

The basic idea is that atoms in one grain (on one side of the
boundary) have a potential energy dE added to them.  Atoms in the
other grain have 0.0 potential energy added.  Atoms near the boundary
(whose neighbor environment is intermediate between the two grain
orientations) have an energy between 0.0 and dE added.  This creates
an effective driving force to reduce the potential energy of atoms
near the boundary by pushing them towards one of the grain
orientations.  For dir = 1 and dE > 0, the boundary will thus move so
that the grain described by file0 grows and the grain described by
file1 shrinks.  Thus this fix is designed for simulations of two-grain
systems, either with one grain boundary and free surfaces parallel to
the boundary, or a system with periodic boundary conditions and two
equal and opposite grain boundaries.  In either case, the entire
system can displace during the simulation, and such motion should be
accounted for in measuring the grain boundary velocity.

The potential energy added to atom I is given by these formulas

:c,image(Eqs/fix_orient_fcc.jpg)

which are fully explained in "(Janssens)"_#Janssens.  The order
parameter Xi for atom I in equation (1) is a sum over the 12 nearest
neighbors of atom I.  Rj is the vector from atom I to its neighbor J,
and RIj is a vector in the reference (perfect) crystal.  That is, if
dir = 0/1, then RIj is a vector to an atom coord from file 0/1.
Equation (2) gives the expected value of the order parameter XiIJ in
the other grain.  Hi and lo cutoffs are defined in equations (3) and
(4), using the input parameters {cutlo} and {cuthi} as thresholds to
avoid adding grain boundary energy when the deviation in the order
parameter from 0 or 1 is small (e.g. due to thermal fluctuations in a
perfect crystal).  The added potential energy Ui for atom I is given
in equation (6) where it is interpolated between 0 and dE using the
two threshold Xi values and the Wi value of equation (5).

The derivative of this energy expression gives the force on each atom
which thus depends on the orientation of its neighbors relative to the
2 grain orientations.  Only atoms near the grain boundary feel a net
force which tends to drive them to one of the two grain orientations.

In equation (1), the reference vector used for each neighbor is the
reference vector closest to the actual neighbor position.  This means
it is possible two different neighbors will use the same reference
vector.  In such cases, the atom in question is far from a perfect
orientation and will likely receive the full dE addition, so the
effect of duplicate reference vector usage is small.

The {dir} parameter determines which grain wants to grow at the
expense of the other.  A value of 0 means the first grain will shrink;
a value of 1 means it will grow.  This assumes that {dE} is positive.
The reverse will be true if {dE} is negative.

The {alat} parameter is the cubic lattice constant for the fcc
material and is only used to compute a cutoff distance of 1.57 * alat
/ sqrt(2) for finding the 12 nearest neighbors of each atom (which
should be valid for an fcc crystal).  A longer/shorter cutoff can be
imposed by adjusting {alat}.  If a particular atom has less than 12
neighbors within the cutoff, the order parameter of equation (1) is
effectively multiplied by 12 divided by the actual number of neighbors
within the cutoff.

The {dE} parameter is the maximum amount of additional energy added to
each atom in the grain which wants to shrink.

The {cutlo} and {cuthi} parameters are used to reduce the force added
to bulk atoms in each grain far away from the boundary.  An atom in
the bulk surrounded by neighbors at the ideal grain orientation would
compute an order parameter of 0 or 1 and have no force added.
However, thermal vibrations in the solid will cause the order
parameters to be greater than 0 or less than 1.  The cutoff parameters
mask this effect, allowing forces to only be added to atoms with
order-parameters between the cutoff values.

{File0} and {file1} are filenames for the two grains which each
contain 6 vectors (6 lines with 3 values per line) which specify the
grain orientations.  Each vector is a displacement from a central atom
(0,0,0) to a nearest neighbor atom in an fcc lattice at the proper
orientation.  The vector lengths should all be identical since an fcc
lattice has a coordination number of 12.  Only 6 are listed due to
symmetry, so the list must include one from each pair of
equal-and-opposite neighbors.  A pair of orientation files for a
Sigma=5 tilt boundary are show below.

[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 potential energy of atom interactions with the grain
boundary driving force to the system's potential energy as part of
"thermodynamic output"_thermo_style.html.

This fix calculates a global scalar which can be accessed by various
"output commands"_Section_howto.html#howto_15.  The scalar is the
potential energy change due to this fix.  The scalar value calculated
by this fix is "extensive".

This fix also calculates a per-atom array which can be accessed by
various "output commands"_Section_howto.html#howto_15.  The array
stores the order parameter Xi and normalized order parameter (0 to 1)
for each atom.  The per-atom values can be accessed on any timestep.

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 is part of the MISC 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.

This fix should only be used with fcc lattices.

[Related commands:]

"fix_modify"_fix_modify.html

[Default:] none

:line

:link(Janssens)
[(Janssens)] Janssens, Olmsted, Holm, Foiles, Plimpton, Derlet, Nature
Materials, 5, 124-127 (2006).

:line

For illustration purposes, here are example files that specify a
Sigma=5 <100> tilt boundary.  This is for a lattice constant of 3.5706
Angs.

file0:

     0.798410432046075    1.785300000000000    1.596820864092150
    -0.798410432046075    1.785300000000000   -1.596820864092150
     2.395231296138225    0.000000000000000    0.798410432046075
     0.798410432046075    0.000000000000000   -2.395231296138225
     1.596820864092150    1.785300000000000   -0.798410432046075
     1.596820864092150   -1.785300000000000   -0.798410432046075 :pre

file1:

    -0.798410432046075    1.785300000000000    1.596820864092150
     0.798410432046075    1.785300000000000   -1.596820864092150
     0.798410432046075    0.000000000000000    2.395231296138225
     2.395231296138225    0.000000000000000   -0.798410432046075
     1.596820864092150    1.785300000000000    0.798410432046075
     1.596820864092150   -1.785300000000000    0.798410432046075 :pre
