CGAL 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 P3Triangulation3secspace and P3Triangulation3secintro of the package PkgPeriodic3Triangulation3). 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 PkgMesh3 package, but because CGAL's PkgMesh3 package aims to mesh traditional (non-periodic) domains, an interface is necessary between CGAL's PkgMesh3 package and CGAL's PkgPeriodic3Triangulation3. This package offers these interfaces.
This package relies entirely on the PkgMesh3Concepts and the PkgMesh3SecondaryConcepts described in the PkgMesh3 package. The following concepts are essentially identical to the concepts MeshDomain_3
and MeshDomainWithFeatures_3
in the package PkgMesh3 :
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 PkgMesh3, see PkgMesh3MeshClasses, PkgMesh3Domains, and PkgMesh3Parameters.
Topics | |
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. | |