address spelling and formatting issues
This commit is contained in:
@ -50,7 +50,7 @@ Description
|
|||||||
|
|
||||||
This fix performs Monte-Carlo (MC) evaluations to enable kinetic
|
This fix performs Monte-Carlo (MC) evaluations to enable kinetic
|
||||||
Monte Carlo (kMC)-type behavior during MD simulation by allowing
|
Monte Carlo (kMC)-type behavior during MD simulation by allowing
|
||||||
neighboring atoms to swap their positions. In constrast to the :doc:`fix
|
neighboring atoms to swap their positions. In contrast to the :doc:`fix
|
||||||
atom/swap <fix_atom_swap>` command which swaps pairs of atoms anywhere
|
atom/swap <fix_atom_swap>` command which swaps pairs of atoms anywhere
|
||||||
in the simulation domain, the restriction of the MC swapping to
|
in the simulation domain, the restriction of the MC swapping to
|
||||||
neighbors enables a hybrid MD/kMC-like simulation.
|
neighbors enables a hybrid MD/kMC-like simulation.
|
||||||
@ -68,7 +68,7 @@ Metropolis criterion after evaluating the change in system energy due
|
|||||||
to the swap.
|
to the swap.
|
||||||
|
|
||||||
A detailed explanation of the original implementation of this
|
A detailed explanation of the original implementation of this
|
||||||
algorithm can be found in :ref:`(Tavenner 2023) <_TavennerMDkMC>`
|
algorithm can be found in :ref:`(Tavenner 2023) <TavennerMDkMC>`
|
||||||
where it was used to simulated accelerated diffusion in an MD context.
|
where it was used to simulated accelerated diffusion in an MD context.
|
||||||
|
|
||||||
Simulating inherently kinetically-limited behaviors which rely on rare
|
Simulating inherently kinetically-limited behaviors which rely on rare
|
||||||
@ -81,41 +81,46 @@ the processes of atomic diffusion to be approximated during an MD
|
|||||||
simulation, effectively decoupling the MD atomic vibrational timescale
|
simulation, effectively decoupling the MD atomic vibrational timescale
|
||||||
and the atomic hopping (kMC event) timescale.
|
and the atomic hopping (kMC event) timescale.
|
||||||
|
|
||||||
The algorithm implemented by this fix is as follows. The MD
|
The algorithm implemented by this fix is as follows:
|
||||||
simulation is paused every *N* stepsA Voronoi tesselation is
|
|
||||||
performed for the current atom configuration. Then *X* atom swaps are
|
- The MD simulation is paused every *N* steps
|
||||||
attempted, one after the other. For each swap, an atom *I* is
|
- A Voronoi tesselation is performed for the current atom configuration.
|
||||||
selected randomly from the list of atom types specified by either the
|
- Then *X* atom swaps are attempted, one after the other.
|
||||||
*types* or *diff* keywords. One of *I*'s Voronoi neighbors *J* is
|
- For each swap, an atom *I* is selected randomly from the list of
|
||||||
selected using the distance-weighted probability for each neighbor
|
atom types specified by either the *types* or *diff* keywords.
|
||||||
detailed below. The *I,J* atom IDs are communicated to all processors
|
- One of *I*'s Voronoi neighbors *J* is selected using the
|
||||||
so that a global energy evaluation can be performed for the post-swap
|
distance-weighted probability for each neighbor detailed below.
|
||||||
state of the system. The swap is accepted or rejected based on the
|
- The *I,J* atom IDs are communicated to all processors so that a
|
||||||
Metropolis criterion using the energy change of the system and the
|
global energy evaluation can be performed for the post-swap state
|
||||||
specified temperature *T*.
|
of the system.
|
||||||
|
- The swap is accepted or rejected based on the Metropolis criterion
|
||||||
|
using the energy change of the system and the specified temperature
|
||||||
|
*T*.
|
||||||
|
|
||||||
Here are a few comments on the computational cost of the swapping
|
Here are a few comments on the computational cost of the swapping
|
||||||
algorithm.
|
algorithm.
|
||||||
|
|
||||||
(1) The cost of a global energy evaluation is similar to that of an MD
|
1. The cost of a global energy evaluation is similar to that of an MD
|
||||||
timestep.
|
timestep.
|
||||||
|
|
||||||
(2) Simliar to other MC algorithms in LAMMPS, an optimized parallel efficiency
|
2. Similar to other MC algorithms in LAMMPS, improved parallel
|
||||||
is achieved with a smaller number of atoms per processor than would typically
|
efficiency is achieved with a smaller number of atoms per
|
||||||
be used in an standard MD simulation. This is because the per-energy evaluation
|
processor than would typically be used in an standard MD
|
||||||
cost increases relative to the balance of MD/MC steps as indicated by (1), but
|
simulation. This is because the per-energy evaluation cost
|
||||||
the communication cost remains relatively constant for a given number of MD steps.
|
increases relative to the balance of MD/MC steps as indicated by
|
||||||
|
1., but the communication cost remains relatively constant for a
|
||||||
|
given number of MD steps.
|
||||||
|
|
||||||
(3) The MC portion of the simulation will run dramatically slower if
|
3. The MC portion of the simulation will run dramatically slower if
|
||||||
the pair style uses different cutoffs for different atom types (or
|
the pair style uses different cutoffs for different atom types (or
|
||||||
type pairs). This is because each atom swap then requires a rebuild
|
type pairs). This is because each atom swap then requires a
|
||||||
of the neighbor list to ensure the post-swap global energy can be
|
rebuild of the neighbor list to ensure the post-swap global energy
|
||||||
computed correctly.
|
can be computed correctly.
|
||||||
|
|
||||||
Limitations are imposed on selection of *I,J* atom pairs to avoid
|
Limitations are imposed on selection of *I,J* atom pairs to avoid
|
||||||
swapping of atoms which are outside of a reasonable cutoff (e.g. due
|
swapping of atoms which are outside of a reasonable cutoff (e.g. due to
|
||||||
to a Voronoi tesselation near free surfaces) though the
|
a Voronoi tesselation near free surfaces) though the use of a
|
||||||
use of a distance-weighted probabiltiy scaling.
|
distance-weighted probability scaling.
|
||||||
|
|
||||||
----------
|
----------
|
||||||
|
|
||||||
@ -133,8 +138,8 @@ sets the radius :math:`r_0` in this formula
|
|||||||
|
|
||||||
where :math:`p_{ij}` is the probability of selecting atom :math:`j` to
|
where :math:`p_{ij}` is the probability of selecting atom :math:`j` to
|
||||||
swap with atom :math:`i`. Typically, a value for *R0* around the
|
swap with atom :math:`i`. Typically, a value for *R0* around the
|
||||||
average nearest-neighbor spacing is appropriate. Since this is simply
|
average nearest-neighbor spacing is appropriate. Since this is simply a
|
||||||
a proability weighting, the swapping behavior is not very sensitive to
|
probability weighting, the swapping behavior is not very sensitive to
|
||||||
the exact value of *R0*.
|
the exact value of *R0*.
|
||||||
|
|
||||||
The keyword *types* takes two or more atom types as its values. Only
|
The keyword *types* takes two or more atom types as its values. Only
|
||||||
@ -157,7 +162,7 @@ this:
|
|||||||
|
|
||||||
Note that the *neighbors yes* option must be enabled for use with this
|
Note that the *neighbors yes* option must be enabled for use with this
|
||||||
fix. The group-ID should include all the atoms which this fix will
|
fix. The group-ID should include all the atoms which this fix will
|
||||||
potentialy select. I.e. the group-ID used in the voronoi compute should
|
potentially select. I.e. the group-ID used in the voronoi compute should
|
||||||
include the same atoms as that indicated by the *types* keyword. If the
|
include the same atoms as that indicated by the *types* keyword. If the
|
||||||
*diff* keyword is used, the group-ID should include atoms of all types
|
*diff* keyword is used, the group-ID should include atoms of all types
|
||||||
in the simulation.
|
in the simulation.
|
||||||
@ -221,7 +226,7 @@ Restrictions
|
|||||||
This fix is part of the MC package. It is only enabled if LAMMPS was
|
This fix is part of the MC package. It is only enabled if LAMMPS was
|
||||||
built with that package. See the :doc:`Build package <Build_package>`
|
built with that package. See the :doc:`Build package <Build_package>`
|
||||||
doc page for more info. Also this fix requires that the :ref:`VORONOI
|
doc page for more info. Also this fix requires that the :ref:`VORONOI
|
||||||
package <PKG-VORONOI>` be installed, otherwise the fix will not be
|
package <PKG-VORONOI>` is installed, otherwise the fix will not be
|
||||||
compiled.
|
compiled.
|
||||||
|
|
||||||
The :doc:`compute voronoi/atom <compute_voronoi_atom>` command
|
The :doc:`compute voronoi/atom <compute_voronoi_atom>` command
|
||||||
|
|||||||
@ -4109,6 +4109,7 @@ volpress
|
|||||||
volumetric
|
volumetric
|
||||||
von
|
von
|
||||||
Voro
|
Voro
|
||||||
|
voro
|
||||||
Vorobyov
|
Vorobyov
|
||||||
voronoi
|
voronoi
|
||||||
Voronoi
|
Voronoi
|
||||||
|
|||||||
Reference in New Issue
Block a user