Advanced Options for controlling the Algorithm and output
Output options
silence=true
: will suppress output by voronoi algorithm and integration, thereby speed up the routine a little bit.printevents=true
: callable only inVoronoiGeometry(points,...)
this will generate output at the end of the voronoi algorithm with some information on the results and if there where some unexpected events due to non-regular data strucutres.
Controlling the Voronoi-Algorithm
The optional argument search_settings::NamedTuple
will help to influence the Voronoi routine. However, if you don't know what for sure what you do, you should not touch these except for force_irregular_search
. Otherwise don't blame the package if you get strange results or crash the algorithm. Also you should be aware of the fact that parameters once set at generation of a VoronoiGeometry
are kept for refining, substituting, .... You can, however, locally modify these parameters with search_settings
in refine!
or substitute!
The following commands are available:
recursive
: When set to 'true' this will cause an iteration when verteces are foundout of line
: As long as in some step 'n' verteces are found that primarily belong to vertexm<n
restart after each full iteration. This is functionality seems to be irrelevant in the latest versions but it may help in case of some very weird data.variance-tol=1E-20
: when the variance of (distance of a vertex to its nodes)^2 is larger than that value, the vertex candidate will be correctedbreak_tol=1E-5
: when the afore mentioned variance is even larger than that (actually did not appear in tests on bounded domains so far) this is sign that something goes terribly wrong. Therefore, the vertex is skipped. cases when this happens is a geometry quasi periodic in at least one dimension and unbounded in the others. Typically happens "far away, i.e. 1E200" from the origin.b_nodes_tol=1E-10
: When a vertex has a distance smaller than that to the boundary, it is considered a boundary vertex.nodes_tol=1.0E-5,
: Whenallow_irregular=true
orforce_irregular_search=true
then this is the threshold below which a node is a candidate to be considered as part of an irregular vertex.allow_irregular=true
: iftrue
the algorithm assumes that irregular verteces may occur and checks for it whenever there is evidence that this might be the case.force_irregular_search=true
: Whentrue
the algorithm checks for at every vertex if the vertex is irregular and searches for the irregular nodes. This, however, increases the computational cost. If you assume there will be no irregular verteces, set this field to falsecorrecting=true
: The algorithm checks if the variance of the (renormalized) distance of a vertex to its nodes is larger thanvariance_tol
but still smaller thanbreak_tol
. In this case, it will correct the vertex to reduce the variance as much as possible. Increases the computational cost by less than 1% but is extremely stabilizing for large grids.