Winslow smoothing¶
smooth.winslow is an alternative to Laplace for the cases where Laplace fails: concave outlines and thin,
curved, high-aspect blocks. The L-shape of Which method when, one block, its reflex corner at (1, 1):
L-shape
min J -0.32 · 10 inverted (9 off the corner)
min J -0.95 · 6 inverted (5 off the corner)
min J -0.68 · 1 inverted, at the corner
Key points¶
Inverse Laplace: the logical coordinates are harmonic in physical space, so the neighbour weights are physical lengths.
No fold away from a reflex corner, where two quads must share a 270-degree turn.
Close to the optimizer’s shape on a valid, ungraded input, for less time.
Same boundary handling as Laplace: every constraint and every
boundarysetting (Constraints and projection).
The equation¶
For each Cartesian component of the map \(x(\xi,\eta)\):
A \(\xi\) neighbour weighs \(\alpha\), the square of the other spacing: on a thin cell the long direction hardly acts. On a surface the constraints drop the normal part of each move, which gives the surface equation.
A sweep¶
One Gauss-Seidel pass over coloured vertices, \(\alpha,\beta,\gamma\) from the current positions, over the ring of \(2n\) neighbours \(x_k\) (edge neighbours and opposite corners), with \(w_k=\alpha W_{\xi\xi,k}-2\beta W_{\xi\eta,k}+\gamma W_{\eta\eta,k}\):
vertex |
stencil \(W\) |
|---|---|
valence 4 |
the 9-point stencil, \(x_{\xi\xi}=E-2x+W\), \(x_{\xi\eta}=\tfrac14(NE-NW+SW-SE)\) |
valence \(n\ne4\) |
least-squares quadratic fit on \(n\) congruent rhombi of angle \(2\pi/n\); keeps \(\sum_k w_k>0\) |
boundary |
\(x\leftarrow\tfrac12(x_{\text{prev}}+x_{\text{next}})\), tangential under |
The guard: a sweep that adds an inverted quad, or drops the minimum scaled Jacobian more than max_sj_drop below the
best reached, is retried with \(\omega\) halved (retries), then refused: the stage stops. It also stops below
tol.
What it does here¶
input |
reading |
Laplace (100 passes) |
Winslow (200 sweeps) |
|---|---|---|---|
L-shape (concave) |
inverted quads (input 10) |
6 |
1 |
L-shape (concave) |
of which away from the reflex corner |
5 |
0 |
free disk |
area change (%) |
+0.0 |
+0.0 |
graded layer, frozen wall |
layer thickness change (%) |
+229 |
+207 |
graded layer, |
layer thickness change (%) |
+229 |
+778 |
graded layer, |
layer thickness change (%) |
+0 |
+0 |
When to use it, and when not¶
Use it where Laplace leaves folds on a concave outline or squeezes a thin curved block, or as a cheaper optimizer on a valid, ungraded mesh. Add it by hand:
("winslow", {"sweeps": 100}).Not on a graded layer without
KeepLayer: the guard stops it early here, but relaxed it erases the grading.Not for long runs on a closed surface: with no boundary the mesh can slide over it. Keep
sweepsmodest; the guard stops a slow slide.A reflex-corner quad can stay inverted: no method here repairs it on a one-block layout; give the corner more quads.
Parameters¶
parameter |
default |
meaning |
|---|---|---|
|
|
maximum Gauss-Seidel sweeps |
|
|
under-relaxation of every move, in (0, 1] |
|
|
stop when the largest move of a sweep is below this many local edge lengths |
|
|
reference normals (default: the input’s winding; pass the surface’s) |
|
|
boolean mask of quads: only their vertices move (the local variant) |
|
|
a sweep that adds an inverted quad or lowers the minimum scaled J by more than this below the best reached is retried with |
|
|
number of |
|
|
inversion-penalty weight, used only for the F/quad reading in the log |
|
|
inversion-penalty threshold on the scaled J, likewise only for the reading |
winslow_local is the same call with elements set to the failing quads.
References¶
A. M. Winslow, “Numerical solution of the quasilinear Poisson equation in a nonuniform triangle mesh”, Journal of Computational Physics 1(2), 149-172 (1966), doi:10.1016/0021-9991(66)90001-5. Used for: the elliptic smoothing equation, harmonic logical coordinates in the physical domain.
P. M. Knupp, S. Steinberg, Fundamentals of Grid Generation, CRC Press (1993). Used for: the inverse form of the equations and the discrete 9-point stencil.