Page MenuHomec4science

cell_statistics.cc
No OneTemporary

File Metadata

Created
Sat, Jul 13, 04:34

cell_statistics.cc

// Simple cell statistics demonstration code
//
// Author : Chris H. Rycroft (LBL / UC Berkeley)
// Email : chr@alum.mit.edu
// Date : August 30th 2011
#include "voro++.hh"
using namespace voro;
// This function returns a random floating point number between 0 and 1
double rnd() {return double(rand())/RAND_MAX;}
int main() {
double x,y,z;
voronoicell v;
// Initialize the Voronoi cell to be a cube of side length 2, centered
// on the origin
v.init(-1,1,-1,1,-1,1);
// Remove one edge of the cell with a single plane cut
v.plane(1,1,0,2);
// Output the Voronoi cell to a file in gnuplot format
v.draw_gnuplot(0,0,0,"simple_cell.gnu");
// Output vertex-based statistics
printf("Total vertices : %d\n",v.p);
printf("Vertex positions : ");v.output_vertices();puts("");
printf("Vertex orders : ");v.output_vertex_orders();puts("");
printf("Max rad. sq. vertex : %g\n\n",0.25*v.max_radius_squared());
// Output edge-based statistics
printf("Total edges : %d\n",v.number_of_edges());
printf("Total edge distance : %g\n",v.total_edge_distance());
printf("Face perimeters : ");v.output_face_perimeters();puts("\n");
// Output face-based statistics
printf("Total faces : %d\n",v.number_of_faces());
printf("Surface area : %g\n",v.surface_area());
printf("Face freq. table : ");v.output_face_freq_table();puts("");
printf("Face orders : ");v.output_face_orders();puts("");
printf("Face areas : ");v.output_face_areas();puts("");
printf("Face normals : ");v.output_normals();puts("");
printf("Face vertices : ");v.output_face_vertices();puts("\n");
// Output volume-based statistics
v.centroid(x,y,z);
printf("Volume : %g\n"
"Centroid vector : (%g,%g,%g)\n",v.volume(),x,y,z);
}

Event Timeline