Syntax:
compute ID group-ID voronoi/atom
Examples:
compute 1 all voronoi/atom
Description:
Define a computation that calculates the Voronoi tesselation of the atoms in the simulation box. The tesselation is calculated using all atoms in the simulation, but non-zero values are only stored for atoms in the group.
Two quantites per atom are calculated by this compute. The first is the volume of the Voronoi cell around each atom. Any point in an atom's Voronoi cell is closer to that atom than any other. The second is the number of faces of the Voronoi cell, which is also the number of nearest neighbors of the atom in the middle of the cell.
The Voronoi calculation is performed by the freely available Voro++ package, written by Chris Rycroft at UC Berkeley and LBL, which must be installed on your system when building LAMMPS for use with this compute. See instructions on obtaining and installing the Voro++ software in the src/VORONOI/README file.
IMPORTANT NOTE: The calculation of Voronoi volumes is performed by each processor for the atoms it owns, and includes the effect of ghost atoms stored by the processor. This assumes that the Voronoi cells of owned atoms are not affected by atoms beyond the ghost atom cut-off distance. This is usually a good assumption for liquid and solid systems, but may lead to underestimation of Voronoi volumes in low density systems. By default, the set of ghost atoms stored by each processor is determined by the cutoff used for pair_style interactions. The cutoff can be set explicitly via the communicate cutoff command.
IMPORTANT NOTE: The Voro++ package performs its calculation in 3d. This should still work for a 2d LAMMPS simulation, to effectively compute Vornoi "areas", so long as the z-dimension of the box is roughly the same (or smaller) compared to the separation of the atoms. Typical values for the z box dimensions in a 2d LAMMPS model are -0.5 to 0.5, which satisfies the criterion for most units systems. Note that you define the z extent of the simulation box for 2d simulations when using the create_box or read_data commands.
Output info:
This compute calculates a per-atom array with 2 columns. The first column is the Voronoi volume, the second is the neighbor count, as described above. These values can be accessed by any command that uses per-atom values from a compute as input. See Section_howto 15 for an overview of LAMMPS output options.
The Voronoi cell volume will be in distance units cubed.
Restrictions:
This compute is part of the VORONOI package. It is only enabled if LAMMPS was built with that package. See the Making LAMMPS section for more info.
Related commands:
Default: none