No solver ever sees the continuous domain. Before a single Navier–Stokes term is discretised, the domain is cut into cells — the mesh — and the accuracy and cost of everything downstream depends on how that cutting was done.
Structured (O-grid). Rays are cast from the cylinder centre at Ntheta angles out to the rectangular channel boundary; along each ray, Nr node radii are placed with a power-law grading r(t) = R + (Rout − R)·tg, t=i/Nr, which packs nodes near the wall as the growth exponent g rises. That algebraic grid is then relaxed with real elliptic (Laplacian) smoothing — every interior node moves to the average of its four neighbours, iterated:
x[i,j] ← ( x[i-1,j] + x[i+1,j] + x[i,j-1] + x[i,j+1] ) / 4 (Jacobi/GS Laplace)
skewness = max|angle_corner − 90°| / 90° (0 = square, 1 = degenerate)
aspect = max(edge) / min(edge) (1 = equal sides)
Unstructured (Delaunay). Points are scattered with a real boundary-layer sizing field size(r) = base·clamp(r/R, 1, growth) — dense at the cylinder wall, coarse far away — then triangulated incrementally with Bowyer–Watson: start from one super-triangle, insert each point, delete every triangle whose circumcircle contains it (the empty-circumcircle Delaunay criterion), and re-fill the resulting cavity by joining the point to the cavity's boundary edges.
circumcircle(A,B,C) contains P? → P is "bad": triangle gets removed
quality = 4√3 · Area / (l1² + l2² + l3²) (1 = equilateral, →0 = sliver)
- Mesh density — ring/angular resolution (structured) or the base spacing fed into the sizing field (unstructured); smaller cells cost more but resolve the wall better.
- Growth rate — how fast cells expand moving away from the wall; too aggressive a growth ratio is exactly what produces the skewed, low-quality cells a real mesher warns about.
- Smoothing / point density — elliptic-smoothing iterations untwist a structured grid toward orthogonality; for the unstructured grid the same slider controls how many interior points Bowyer–Watson gets to triangulate.