Voronoi analysis

This analysis modifier calculates the Voronoi tessellation of the simulation box, taking the particle positions as Voronoi cell centers. By default two quantities are output by the analysis modifier for each particle: The volume of the particle's Voronoi cell and the number of faces the Voronoi cell has. Since the face count is equal to the number of nearest neighbors of the particle, this quantity is also called the coordination number.

In addition the modifier can compute the Voronoi index of each cell, which is a vector of integers constituting a histogram of the number of edges on the faces of the Voronoi cell. This index vector can be considered a characteristic signature of a particle's coordination structure. For instance, an icosahedral coordination structure corresponds to the Voronoi index vector (0,0,0,0,12,0,...). In other words, these indices describe a polyhdron with exactly 12 faces with 5 edges each. To select all atoms having this kind of icosahedral coordination structure we can use the Expression select modifier with the Boolean expression:

VoronoiIndex.3==0 && VoronoiIndex.4==0 && VoronoiIndex.5==12 && VoronoiIndex.6==0

(VoronoiIndex.1 and VoronoiIndex.2 are always zero because faces with less than three edges do not exist.)

If you are interested in the Voronoi indices computed by the analysis modifier for a particular atom, you can use the Particle Inspection utility to select the atom in the viewports and display its properties (including the assigned Voronoi indices).

If you want to know what is the Voronoi index vector that occurs most frequently in your atomistic system, you can perform a statistical analysis of the computed Voronoi indices using a custom Python script. You can find an example script in the OVITO scripting manual.

Potential issues in non-periodic domains

Note that the modifier calculates the Voronoi tessellation of the volume enclosed by the simulation cell only (and not entire space). Thus, Voronoi cells will be truncated at the simulation box boundaries (unless periodic boundary conditions are used). No computation will be performed for particles located outside the (non-periodic) simulation box boundaries (but they will still be taken into account when calculating the Voronoi cells of particles inside the box).

Particles that are located exactly on the simulation box boundaries (along non-periodic directions) also pose a problem. The Voronoi cell of such particles is singular and the analysis may stop with the error message "Could not compute Voronoi cell for some particles". The solution to this problem is to increase the size of the simulation box to fully include all particles. This can be archieved, for example, by applying the Affine Transformation modifier to scale the box size.

Parameters

Face area threshold

Specifies a minimum area for faces of a Voronoi cell. The modifier will ignore any Voronoi cell faces with an area smaller than this threshold when computing the coordination number and the Voronoi index of particles.

Compute Voronoi indices

Lets the modifier calculate the Voronoi indices of particles. The modifier stores the computed indices in a vector particle property named Voronoi Index. The i-th component of this property will contain the number of faces of the Voronoi cell that have i edges. Thus, the first two components of the per-particle vector will always be zero, because the minimum number of edges a polygon can have is three.

Maximum edge count

Controls the order up to which Voronoi indices are computed. Note that Voronoi faces with a more edges than this maximum will be ignored when calculating the index vector.

Edge length threshold

Specifies the minimum length an edge must have to be considered in the Voronoi index calculation. Edges that are shorter than this threshold will be ignored when counting the number of edges of a Voronoi face.

Generate neighbor bonds

If this option is enabled, the modifier outputs the bonds between pairs of neighboring particles. A bond is generated for every Voronoi face whose area is larger than the specified face area threshold, and which has at least three edges longer than the specified edge length threshold.

Note that bonds in periodic simulation cells are computed using the minimum image convention, which requires that the cell is at least twice as large in each periodic direction as the longest neighbor bond. In cases where the cell is shorter, the computed bonds might be incorrect.

Use particle radii

Lets the modifier compute the poly-disperse Voronoi tessellation, which takes into account the radii of particles. Otherwise a mono-disperse Voronoi tessellation is computed, which is independent of the particle sizes.

Use only selected particles

Lets the modifier perform the analysis only for selected particles. Particles that are not selected will be treated as if they did not exist.

Acknowledgment

This modifier uses the Voro++ package of Chris Rycroft to compute Voronoi polyhedra.