seeding strategy of [?] w 242 metrics and domains with arbitrary boundaries. 243 Our anisotropic meshing algorithm proceeds by iteratively i point si,j,k ⇥ S to an already computed set of points S. In or an anisotropic mesh with triangles of high quality with resp metric, one inserts si,j,k for a Delaunay triangle (xi, xj, xk ) w circumradius to shortest edge ratio ⇥(si,j,k ) = d(si,j,k, xi ) min(d(xi, xj ), d(xj, xk ), d(xk, xi )), which is a quantity computed for each triple point in parallel to 244 ing propagation. In the Euclidean domain, a triangle (xi, xj, xk ) 245 of ⇥(si,j,k ) is badly shaped since its smallest angle is close to 0 . 246 [?], this property extends to an anisotropic metric H(x) if angl 247 using the inner product defined by H(x). 248 = circumradius shortest edge Fig. 7. Left: the vertex x3 encroaches the boundary curve ⇥1,2. Right: the vertex x3 does not encroach anymore because (x1, x2) is a Delaunay edge. Table 2 details this algorithm. A bound ⇥⇥ on ⇥ enforces the refinement to reach some quality criterion, while a bound U⇥ enforces a uniform refinement to match some desired triangle density. 1. Initialization: set S with at least one point on each curve of , compute US with a Fast Marching. 2. Boundary enforcement: while it exists ⇥i,j ⌃ encroached by some xk ⇤ S, subdivide: S ⇥ S ⌃ argmax x⇤⇤i,j US (x). Update US with a local Fast Marching. 3. Triangulation enforcement: while it exists (xi, xj) ⇤ DS with xi or xj isolated, insert w⇥ = argmax w⇤Ci⇧Cj d(xi, w). 4. Select point: s⇧ ⇥ argmin s⇤ S ⌃⇥ ⇤(s). – If in S ⌃ {s⇧}, s⇧ encroaches some ⇥i,j ⌃ , subdivide: S ⇥ S ⌃ argmax x⇤⇤i,j US (x). – Otherwise, add it: S ⇥ S ⌃ s⇧. Update US with a local Fast Marching. 5. Stop: while ⇤(s⇧) > ⇤⇧ or US (s⇧) > U⇧, go back to 2. x1 x3 s1,2,3 s1,2,3 x3 x2 x2 x1