### Mikhail Bogdanov*, Aymeric PellĂ©*, Mael Rouxel-LabbĂ©°, and Monique Teillaud*

#### *INRIA, °GeometryFactory

The field of algorithmic geometry is traditionally limited to Euclidean spaces. Consequently,
this is also the case for most data structures and algorithms in CGAL.
However, by assuming other geometric postulates, it is possible to consider different kinds of spaces, such
as *periodic spaces* defined as the quotient of an Euclidean space with an associative group,
also known as *flat torus*. In a simpler-to-visualize way, such periodic spaces can been
seen as a square (in 2D) or cubic (in 3D) tile that paves the Euclidean space. Geometric entities living
in these spaces are duplicated across all tiles.

Example of 3 points in a 2D periodic space: the points and simplicies are reproduced periodically from tile to tile.

These periodic spaces are particularly well adapted to materials science and the modelling of some physic phenomena such as crystallographic structures, the cosmic web, and more (see for example, the program of the CGAL Prospective Workshop on Geometric Computing in Periodic Spaces )... As in the Euclidean space, the study of these topics requires discretizing objects in triangulations and meshes. The construction of 3D periodic triangulations has been available in CGAL since CGAL 3.5, with the release of the package 3D Periodic Triangulations. The next natural step was to offer mesh generation, that is the automatic generation of new points of a triangulation to construct a good approximation of a given domain living within the periodic cube.

### 3D Periodic Mesh Generation

Introducing the newest CGAL package: **3D Periodic Mesh Generation** (also known as *Periodic_3_mesh_3*).
The package Periodic_3_mesh_3 computes isotropic simplicial meshes for domains
described through implicit functional boundaries over the flat torus. The output is a periodic 3D mesh
of the domain volume and conformal surface meshes for all the boundary and subdividing surfaces.

The package is closely related to the
3D Mesh Generation package
(also known as *Mesh_3*), with similar concepts, classes, and API.
The package Periodic_3_mesh_3 therefore also offers feature protection, to ensure the presence
of sharp edges in a mesh, as well as post-processing steps such as mesh optimization
(Lloyd, ODT, sliver removal, ...):

Optimization of a periodic mesh (8 representations shown).

The package Periodic_3_mesh_3 is already integrated in CGAL's master branch on the CGAL GitHub repository, and will be available officially in the upcoming release, CGAL 4.13, scheduled for September 2018.

Documentation of the package Periodic_3_mesh_3CGAL master branch on GitHub