Generating and Meshing a Simple Tessellation

The only required input to generate and mesh a simple tessellation is the number of cells. By default, a 3D Voronoi tessellation is generated [CMAME2011]. 2D is also available (option -dim).


To reproduce exactly the images below, add the following line to your $HOME/.neperrc file (or to a local configuration file to be loaded with --rcfile):

neper -V -imagesize 800:400

Generating a Tessellation

The number of cells can be specified using option -n of the Tessellation Module (-T). A 100-cell tessellation can be generated as follows:

$ neper -T -n 100

This produces a Tessellation File (.tess) named n100-id1.tess.

The tessellation can be visualized using the Visualization Module (-V):

$ neper -V n100-id1.tess -print img1

This produces a PNG file named img1.png where cells are colored arbitrarily from their ids.


Another tessellation with the same number of cells but different cell properties can be generated using -id (the default value is 1):

$ neper -T -n 100 -id 2

This produces a Tessellation File (.tess) named n100-id2.tess.

The tessellation can be visualized as before:

$ neper -V n100-id2.tess -print img1b

Meshing a Tessellation

A mesh can be obtained by passing n100-id1.tess to the Meshing Module (-M):

$ neper -M n100-id1.tess

This produces a Mesh File (.msh) named n100-id1.msh.

The mesh can be visualized using the Visualization Module (-V):

$ neper -V n100-id1.tess,n100-id1.msh -print img2


When both the tess file and mesh file are available, it is a good practice to pass both of them to -V by using the , separator. Only the mesh is printed.


The cell boundaries can be highlighted via the 1D elements, using -showelt1d and -dataelt1drad:

$ neper -V n100-id1.tess,n100-id1.msh -showelt1d all -dataelt1drad 0.005 -print img3

Regularizing a Tessellation

It is quite clear from the above image that the mesh is overrefined at some locations, which is where small edges typical of Voronoi tessellations are. Neper includes regularization (option -regularization), which removes the smallest edges of the tessellation [CMAME2011]:

$ neper -T -n 100 -reg 1
$ neper -V n100-id1.tess -print img4


An option name may be abbreviated as long as the abbreviation is not ambiguous. Specifically, -regularization can be abbreviated to -reg.


The resulting tessellation is very similar to the original one, as only slight morphological changes occur during regularization. However, no local mesh overrefinements will be present anymore.

The new tessellation can be meshed, and the mesh can be visualized as before:

$ neper -M n100-id1.tess
$ neper -V n100-id1.tess,n100-id1.msh -showelt1d all -dataelt1drad 0.005 -print img5

Setting Mesh Properties

Mesh properties can be specified, such as the element size or characteristic length, the element type, etc.

For example, smaller elements than shown above can be obtained using option -rcl, and 2nd-order elements can be obtained using option -order:

$ neper -M n100-id1.tess -rcl 0.7 -order 2
$ neper -V n100-id1.tess,n100-id1.msh -showelt1d all -dataelt1drad 0.005 -print img6

This mesh can be used by FEPX.


R Quey, PR Dawson and F Barbe, Large-scale 3D random polycrystals for the finite element method: Generation, meshing and remeshing, Computer Methods in Applied Mechanics and Engineering, vol. 200, pp. 1729-1745, 2011..