Voro++ customized output reference
The output files created by Voro++ can be fully customized to contain a variety of different statistics about the computed Voronoi cells. This is done by specifying a format string that contains text plus additional control sequences that begin with percentage signs. The output file contains a line for each particle, where the control sequences are expanded to different statistics.
The custom printing is done using the print_all_custom()
routine in the container
class. Customized output can also
be carried out with the command-line utility
using the “-c” option to specify the output format. See
the customized output example code
for several demonstrations.
Particle-related entries
- %i
- The particle ID number.
- %x
- The x coordinate of the particle.
- %y
- The y coordinate of the particle.
- %z
- The z coordinate of the particle.
- %q
- The position vector of the particle, short for “%x %y %z”.
- %r
- The radius of the particle (only printed if the polydisperse information is available).
Vertex-related entries
- %w
- The number of vertices in the Voronoi cell.
- %p
- A list of the vertices of the Voronoi cell in the format (x,y,z), relative to the particle center.
- %P
- A list of the vertices of the Voronoi cell in the format (x,y,z), relative to the global coordinate system.
- %o
- A list of the orders of each vertex.
- %m
- The maximum radius squared of a vertex position, relative to the particle center.
Edge-related entries
- %g
- The number of edges of the Voronoi cell.
- %E
- The total edge distance.
- %e
- A list of perimeters of each face.
Face-related entries
- %s
- The number of faces of the Voronoi cell.
- %F
- The total surface area of the Voronoi cell.
- %A
- A frequency table of the orders of the faces.
- %a
- A list of the orders of the faces, showing how many edges make up each face.
- %f
- A list of areas of each face.
- %t
- A list of bracketed sequences of vertices that make up each face.
- %l
- A list of normal vectors for each face.
- %n
- A list of the neighboring particle or wall IDs
corresponding to each face. The list can contain negative numbers. For
the non-periodic case these correspond to when the particles have faces
created by the edges of the computational region. The numbers -1 to -6
correspond to the minimum x, maximum x, minimum y,
maximum y, minimum z, and maximum z walls
respectively. For periodic boundary conditions, negative numbers
correspond to the cases when a face of the Voronoi cell is created by
the periodic image of the current particle.
In general, the neighbor information will be symmetric, so that if particle A reports particle B as a neighbor, then particle B will report particle A as a neighbor. However, due to the fact that Voro++ computes each Voronoi cell individually, it does not provide an explicit guarantee that the neighbor information will always be symmetric. Suppose there is a very small Voronoi face connecting A to B – it may be the case that due to roundoff error, the Voronoi cell computed for particle A has a face connecting it to B, but the cell computed for particle B does not have a face connecting it to A. If the user requires perfectly symmetric neighbor information, this can be achieved by scanning the output for any one-sided connections, and either deleting them or adding in the reverse connections. The face areas output from “%f” can also be used to remove connections between particles that only have a very small face between them.
Volume-related entries
- %v
- The volume of the Voronoi cell.
- %c
- The centroid of the Voronoi cell, relative to the particle center.
- %C
- The centroid of the Voronoi cell, in the global coordinate system.