Tessellation

Main goal is to divide domain into polyhedral cells so that it resembles real foam.

Inputs

Only required input is the *Packing.csv file generated by packing (see Sphere packing).

Execution

Tessellation can be achieved by running:

foamgen -t

This produces tessellation similar to this one (you need to add --tess.render flag if you want to create the image):

../_images/FoamTessellation.png

Outputs

The main output is the *Tessellation.geo file, which contains the the tessellated foam in gmsh CAD format.

The *Tessellation.gnu and *Tessellation.tess are formats for gnuplot and POV-Ray visualiation, respectively. The *.stcell, *.stedge, *.stface, and *.stver contain statistics about cells, edges, faces, and vertices, respectively.

Implementation

Third-party program Neper is used to perform weighted tessellations.

Theory

The weighted Voronoi tessellation (also known as Laguerre tessellation) is used to divide the periodic domain into cells. The packed spheres are used as seeds and weights for the tessellation algorithm. Mathematically, Laguerre tessellation can be written as

\[C_k = \left\{x \in \mathbb{R}^d: ||x - S_k||^2 - w_k \le ||x - S_j||^2 - w_j \hspace{5pt}\forall j \neq k \right\}\]

where \(C\) is the cell, \(S\) is the seed and \(w\) is the weight.