2D Delaunay triangulation - controlling constrained edges refinement

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

2D Delaunay triangulation - controlling constrained edges refinement

Renato Poli
Hi all,

I need to refine some constrained edges in a 2D CDT.
Delaunay_mesher_no_edge_refinement_2.h works fine when I don't want any constrained edge to refine and Delaunay_mesher_2.h works fine when I let them all refine.

My problem now is to add a condition for that to happen (some edges I allow refinement, while other ones I do not).
I tried reimplementing method "test_point_conflict_from_superior_impl" in "Refine_edges_with_clusters.h".

I added the following control lines:
190             if ( ! _mesh_selection.is_external_boundary( lmp1, lmp2 ) )
191               return status = CONFLICT_AND_ELEMENT_SHOULD_BE_DROPPED;

However, the algorithm still splits one or two constrained edges where this condition is satisfied (fig attached).
In the attached figure, red and green edges are free to refine, while the rest of the domain boundary must remain untouched (nodes highlighted in red are being erroneously generated).

I tried to make some tweaks in "Delaunay_mesher_2.h" with little success.
I also tried specializing "Refine_edges.h" following "Do_not_refine_edges.h".
No success so far.

Do you have any suggestion?

Thanks,
Renato

test-mesh.png (74K) Download Attachment