CGAL 5.6.1 - 3D Periodic Mesh Generation
|
Relation to the 3D Mesh Generation and 3D Periodic Triangulations Packages
A periodic mesh extends, by definition, infinitely in space. To avoid storing and manipulating duplicate points, well-chosen "dummy" points are inserted at the beginning of the meshing process, thus ensuring that the underlying periodic triangulation forms at all times a simplicial complex within a single copy of the periodic space \( \mathbb T_c^3\) (see Sections The Flat Torus and Representation of the package 3D Periodic Triangulations). By identifying a single copy of the flat torus \( \mathbb T_{c_x,c_y,c_y}^3\) (where c_x
,c_y
, and c_z
denote the period along the canonical axes) with a cuboid of side lengths c_x
,c_y
, andc_z
in \( \mathbb R^3\), the meshing process can be exclusively conducted within a cuboid. The mesh within a single copy is created using CGAL's 3D Mesh Generation package, but because CGAL's 3D Mesh Generation package aims to mesh traditional (non-periodic) domains, an interface is necessary between CGAL's 3D Mesh Generation package and CGAL's 3D Periodic Triangulations. This package offers these interfaces.
This package relies entirely on the Main Concepts and the Secondary Concepts described in the 3D Mesh Generation package. The following concepts are essentially identical to the concepts MeshDomain_3
and MeshDomainWithFeatures_3
in the package 3D Mesh Generation :
The following class provides the interface between CGAL's periodic triangulation and CGAL's three-dimensional mesh generator:
CGAL::Periodic_3_mesh_triangulation_3<MD, K, Vertex_base, Cell_base>
The following class allows to construct a periodic implicit function from an implicit function that is not periodic:
CGAL::Periodic_3_function_wrapper<Function,BGT>
The following class allows to split the canonical cuboid in two subdomains, separated by the zero-level of an implicit function:
CGAL::Implicit_to_labeled_subdomains_function_wrapper<Function,BGT>
The following functions handle the generation of a periodic mesh:
CGAL::make_periodic_3_mesh_3()
CGAL::refine_periodic_3_mesh_3()
CGAL::exude_periodic_3_mesh_3()
CGAL::perturb_periodic_3_mesh_3()
CGAL::lloyd_optimize_periodic_3_mesh_3()
CGAL::odt_optimize_periodic_3_mesh_3()
Mesh_3
Many classes and functions used by this package are defined within the package 3D Mesh Generation, see Mesh Classes, Domain Classes, and Parameter Functions.
Modules | |
Concepts | |
The concepts of this package. | |
Mesh Classes | |
The classes in this group are the main classes involved in the mesh generation process. | |
Domain Classes | |
The classes in this group are models of domain concepts and their associated classes. | |
Mesh Generation Functions | |
The two main functions to generate a periodic mesh are make_periodic_3_mesh_3() and refine_periodic_3_mesh_3() . | |
Input/Output Functions | |
The free functions that can be used to read and write periodic meshes. | |