... | ... | @@ -441,18 +441,15 @@ The goal of unstructured mesh generation is to produce high quality meshes conta |
|
|
To control the size of the elements, the user has to define an edge length function.
|
|
|
More precisely,
|
|
|
|
|
|
h : D --> R^+
|
|
|
h : D -> R^+
|
|
|
|
|
|
is the edge length function defined on the mesh domain D. In the following examples you will find different edge length functions.
|
|
|
|
|
|
## Rebay's algorithms
|
|
|
|
|
|
The eikmesh library offers the implementation of two algorithm introduced by Rebay in [Rebay, 1993](https://doi.org/10.1006/jcph.1993.1097). The first one, the so called
|
|
|
> Voronoi-Vertex point insertion method,
|
|
|
The eikmesh library offers the implementation of two algorithm introduced by Rebay in [Rebay, 1993](https://doi.org/10.1006/jcph.1993.1097). The first one, the so called *Voronoi-Vertex point insertion method*,
|
|
|
is a *Delaunay-refinement* technique, i.e. additional so called *Steiner vertices* are inserted at the circumcenter of some Delaunay triangle.
|
|
|
The second one, called
|
|
|
> Voronoi-Segment point insertion method,
|
|
|
is a *Frontal-Delaunay algorithm*.
|
|
|
The second one, called *Voronoi-Segment point insertion method*, is a *Frontal-Delaunay algorithm*.
|
|
|
Frontal-Delaunay algorithms are a hybridization of advancing-front and Delaunay-refinement techniques, in which a Delaunay triangulation is used to define the topology of a mesh while new Steiner vertices are inserted in a manner consistent with *advancing-front techniques*.
|
|
|
Both algorithms have a time complexity of O(n log(n)), where n is the number of vertices of the generated triangulation.
|
|
|
For both the user can control the element size by an edge length function h. Both algorithm expect a segment-bounded PSLG G as input and terminates if h is satisfied everywhere.
|
... | ... | @@ -477,7 +474,7 @@ var triangulation vviMethod.generate(); |
|
|
|
|
|
#### Result:
|
|
|
|
|
|
The gray code indicate the triangle quality.
|
|
|
The gray code indicate the triangle quality. The result for h0 = 0.3, 0.1 and 0.05.
|
|
|
|
|
|
![vvmethod](uploads/632fa085e4fabac73002ceb70f29d4a6/vvmethod.png)
|
|
|
|
... | ... | @@ -490,9 +487,19 @@ For more information we refer to [Rebay, 1993](https://doi.org/10.1006/jcph.1993 |
|
|
|
|
|
The following code generates a mesh using h(x) = 0.05:
|
|
|
|
|
|
```java
|
|
|
PSLG pslg = ...
|
|
|
double h0 = 0.05;
|
|
|
var vviMethod = new PVoronoiSegmentInsertion<VPoint, Double, Double>(
|
|
|
pslg,
|
|
|
(x, y) -> new VPoint(x, y),
|
|
|
p -> h0);
|
|
|
var triangulation vviMethod.generate();
|
|
|
```
|
|
|
|
|
|
#### Result:
|
|
|
|
|
|
The gray code indicate the triangle quality.
|
|
|
The gray code indicate the triangle quality. The result for h0 = 0.3, 0.1 and 0.05.
|
|
|
|
|
|
![vimethod](uploads/c06634e022fe7b9dd2eeaf1936de87b6/vimethod.png)
|
|
|
|
... | ... | |