skills: parallel adapt engines, band pinning, and FMG on adapt children - #489
Open
lmoresi wants to merge 1 commit into
Open
skills: parallel adapt engines, band pinning, and FMG on adapt children#489lmoresi wants to merge 1 commit into
lmoresi wants to merge 1 commit into
Conversation
adapt-on-top-faults
- engines section: nvb vs edge_split, both parallel in 2-D and 3-D and
bit-confluent; edge_split has no conforming closure so refinement cannot
escape the marked region, and marks on the DIAMETER (the volume proxy
reported the target met while the mesh was 3.2x coarser across the feature).
- repair=True: gates on reducing the largest angle, NOT on Delaunay. Delaunay
maximises the minimum angle while P1 depends on the maximum, and flipping a
gmsh mesh toward Delaunay raised the 99th-percentile max angle. Worth it on a
poor base (156 -> 115 degrees, slivers 3.84% -> 0.00%), marginal on a clean
one, and it gives up bit-confluence, so it is opt-in.
- relax on a mesh refined onto an interface makes things WORSE (+77% leak);
pin_bands is the fix.
- new section on sizing the band and representing the fault margin: the
-2 Cov(eta, edot) leak metric, why a within-cell marking rule loses to the
plain distance size field, why the optimal band width depends on which
objective you pick, and what a step-edged margin buys and costs.
- gotchas: Mesh(dm) takes the DM over (bare SIGSEGV if you keep using the old
handle); Mesh(dm) without boundaries= loses the boundary enum; evaluate()
"Total components 8 != 6" on a variable-heavy mesh.
adaptive-meshing
- PIN THE INTERFACE section for relax(pin_bands=...), including the
signed-vs-unsigned distance rule and the pinned_labels merge trap.
- cross-reference to nonlinear-solver for the FMG setup.
nonlinear-solver
- new section: FMG on an adapt-on-top child. The child carries its own graded
custom-P tail and solvers pick it up automatically; the base must have
refinement>=1; a base-only tail triples the V-cycle count; V-cycle counts are
insensitive to element quality (a pass, not a failed measurement) so use GAMG
as the quality probe; relax can trip #424 into the dense RBF fallback;
repair invalidates the any-degree transfer but not the vertex prolongation.
- cross-references to adapt-on-top-faults and adaptive-meshing.
Underworld development team with AI support from Claude Code
Member
Author
Adversarial reviewEvery command/API/flag the skills teach exists in #488's diff or on development — Two doc-level overclaims, both tied to #488 defects:
Merge strictly after #488 (else the skills document nonexistent features). Holding with it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Skills documentation for the adapt-on-top work. Split out of #488 for
reviewability.
Merge after #488 — this documents API that only exists on that branch
(
engine="edge_split",repair=True,relax(pin_bands=...)). Based ondevelopmentrather than stacked on #488, because deleting a base branchauto-closes stacked PRs.
adapt-on-top-faultsnvbvsedge_split, both parallel in 2-D and 3-D and bit-confluent.edge_splithas no conforming closure so refinement cannot escape the markedregion, and marks on the DIAMETER — the volume proxy reported the target met
while the mesh was 3.2x coarser across the feature.
repair=True: why it gates on reducing the largest angle and not on Delaunay(Delaunay maximises the minimum angle; flipping a gmsh mesh toward it raised
the 99th-percentile maximum), when it is worth it, and the bit-confluence it
gives up.
relax()alone makes it worse (+77% leak);pin_bandsis the fix.-2 Cov(eta, edot)leak metric, why a within-cell marking rule loses to theplain distance size field, why the optimal band width depends on which objective
you pick, and what a step-edged margin buys and costs.
Mesh(dm)taking the DM over (a bare SIGSEGV if you keep the old handle) andMesh(dm)withoutboundaries=losing the boundary enum.adaptive-meshing"Pin the interface" section for
relax(pin_bands=...), since this is a movercapability — including the signed-vs-unsigned distance rule and the
pinned_labelsmerge trap (passing it replaces the "pin every named boundary"default and silently frees the domain edge).
nonlinear-solverNew section: FMG on an adapt-on-top child. The child carries its own graded
custom-P tail and solvers pick it up automatically; the base needs
refinement>=1; a base-only tail triples the V-cycle count; V-cycle counts areinsensitive to element quality, which is a pass and not a failed measurement, so
use GAMG as the quality probe;
relaxcan trip #424 into the dense RBF fallback.Cross-referenced to both meshing skills, and they to it.
Underworld development team with AI support from Claude Code