// Voronoi calculation example code // // Author : Chris H. Rycroft (LBL / UC Berkeley) // Email : chr@alum.mit.edu // Date : August 30th 2011 #include "voro++.hh" using namespace voro; #include using namespace std; // Set up constants for the container geometry const double x_min=-1,x_max=1; const double y_min=-1,y_max=1; const double z_min=-1,z_max=1; // Set up the number of blocks that the container is divided into const int n_x=6,n_y=6,n_z=6; // Set the number of particles that are going to be randomly introduced const int particles=1; // This function returns a random double between 0 and 1 double rnd() {return double(rand())/RAND_MAX;} int main() { int i,j,id,nv; double x,y,z; // Create a container with the geometry given above, and make it // non-periodic in each of the three coordinates. Allocate space for // eight particles within each computational block container con(x_min,x_max,y_min,y_max,z_min,z_max,n_x,n_y,n_z, false,false,false,8); // Randomly add particles into the container for(i=0;i f_vert; vector v; voronoicell c; if(cl.start()) do if(con.compute_cell(c,cl)) { cl.pos(x,y,z);id=cl.pid(); printf("Particle %d:\n",id); // Gather information about the computed Voronoi cell c.face_vertices(f_vert); c.vertices(x,y,z,v); // Print vertex positions for(i=0;i