mesh: smoothing visits nodes in their own order again (#402)

#462 visited nodes by a mirror-invariant key (distance from the centroid). On the cup with a
handle that order sweeps ring by ring round the axis and converges worse in its 100 sweeps: the
refined cup fell to a scaled Jacobian of 0.481 (needs 0.5, #440). In the lattice's own order
it holds, and the order gained the enclosure base little (its corners differ by 0.02 either
way), so it goes; the compass search's lift to 0.7 stays.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UhhZMBTviDQxZvwnyP89fo
This commit is contained in:
jyvikoandClaude Opus 5.5 authored and Irakli Kourtis committed 2026-10-16 03:42:47 -04:00
1 parent 4d6d69ee6d
commit bf61ae8406
2 files changed
+4 -36

No files matched your search

+2 -3
View File
@@ -1592,9 +1592,8 @@ mod acceptance {
}
}
}
// The layout is mirror symmetric and the smoother visits mirror twins alike; what is left
// is the projection onto the body's tessellation, which the kernel does not make mirror
// symmetric (a chordal tolerance of 0.0165 mm, on 1.5 mm elements).
// The layout is mirror symmetric; the smoother (Gauss-Seidel in node order) and the
// projection onto the body's tessellation are not, so the corners differ a little.
let (lo, hi) = worst.iter().fold((f64::INFINITY, 0.0f64), |(l, h), w| (l.min(*w), h.max(*w)));
assert!(hi - lo < 0.03, "per corner min scaled Jacobian {worst:?}: {r}");
assert!(lo > 0.65, "per corner min scaled Jacobian {worst:?}");