Functionality of the HighVoronoi Package
HighVoronoi
is intended as an effective Voronoi mesh generator in any ARBITRARY DIMENSION greater or equal to 2. It can work on polygonal domains and also on (partially or fully) periodic domains. It also provides methods to implement Finite Volume problems on these high dimensional meshes.
The Mesh generation as well as the Monte-Carlo method are based on an algorithm first published in the VoronoiGraph
package by Alexander Sikorski in the version of June 2022. However, the code was fully restructured and in wide parts rewritten to adapt it to mesh-refinement.
The HighVoronoi
package provides
- a series of data sets that allow to set up a Voronoi mesh in arbitrary dimension on a convex domain with plane boundaries or even without boundaries.
- 2 different methods to calculate the volumes and interface areas of cells: An exact triangulation method and a Montecarlo method
- 3 different methods to integrate functions:
- two on the fly for both triangulation and Montecarlo
- one based on given volume and surface data
- Refinement of Voronoi tessellations: Add points to your grid and the algorithm will locally recalculate the mesh, including integration of volume, area and functions.
- Set up the linear equation for a finite volume Voronoi discretization of a given elliptic PDE with Neumann, Dirichlet or periodic boundary conditions
- other functionalities like 2D data export in Metapost, storing and loading data.
Overview of data structures and methods
Data Structures
VoronoiGeometry
: Creating, updating, refining and managing the meshVoronoiNodes
: Nodes for the meshBoundary
: Boundary of the meshVoronoiData
: Providing the data of the mesh for further use outside ofHighVoronoi.jl
VoronoiFVProblem
: Calculating internal data for setting up linear matrix equations for Finite Volume discretizations on aVoronoiGeometry
Methods
write_jld
: Store aVoronoiGeometry
refine!
: refine aVoronoiGeometry
by new nodeslinearVoronoiFVProblem
: Extract the Matrix and right-hand-side from a givenVoronoiFVProblem
and for given boundary conditions.
To be implemented in a forthcoming version
- refine a
VoronoiFVProblem
. Project a given "rough" FV solution of alinearVoronoiFVProblem
onto the refined solution space. - provide fast and efficient methods for quasi-periodic meshes in High dimensions and with high resolution.