address spelling and formatting issues

This commit is contained in:
Axel Kohlmeyer
2025-04-15 22:48:25 -04:00
parent 4bfdd3eb34
commit 5d9a7d154d
2 changed files with 39 additions and 33 deletions

View File

@ -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

View File

@ -4109,6 +4109,7 @@ volpress
volumetric volumetric
von von
Voro Voro
voro
Vorobyov Vorobyov
voronoi voronoi
Voronoi Voronoi