Say in the library what a 3-D split patch needs from the mesh around it - #719
Open
lmoresi wants to merge 1 commit into
Open
Say in the library what a 3-D split patch needs from the mesh around it#719lmoresi wants to merge 1 commit into
lmoresi wants to merge 1 commit into
Conversation
Both requirements follow from the interior-vertex rule, and both were recorded only in a study rig's README, where nobody building a patch of their own would find them. A patch must be about four cells across in each direction, and a vertical fault in a box needs a blind top setback, a fault depth and a base clearance on top of that, so a box shallower than about nine cells cannot hold a splittable vertical fault however finely the fault itself is triangulated. Separately, a structured extrusion triangulates each corner quad on a diagonal that can cut off a triangle with all three vertices on the rim; that face has no interior vertex and the split refuses it, and the fix is to flip that one diagonal, not to refine. The refusal now names both remedies instead of asking only for refinement, which is the wrong answer to the second one. Underworld development team with AI support from Claude Code Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RzK7JXSxsc2GoG7TGnQgUS
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The changes are limited to documentation and error-message text, with no functional behavior changes detected in the reviewed diffs.
Pull request overview
This PR improves the usability of the 3‑D fault patch splitter by documenting two key mesh/triangulation prerequisites for split_along_label_3d, and by updating the corresponding refusal message to name both remedies (coarseness vs. corner-quad diagonal choice). This helps users design splittable 3‑D patches up front rather than encountering a generic “refine” instruction that doesn’t address the diagonal case.
Changes:
- Expanded the
split_along_label_3ddocstring with two concrete “interior-vertex rule” consequences (minimum patch scale; corner-quad diagonal rule). - Added a new documentation section in the advanced fault networks guide describing the same constraints for 3‑D patches.
- Updated the “no interior vertex” refusal message to describe both likely causes and the correct fix for each.
File summaries
| File | Description |
|---|---|
src/underworld3/utilities/fault_split.py |
Adds splitter prerequisites to the docstring and clarifies the “no interior vertex” refusal message with two specific remedies. |
docs/advanced/fault-networks.md |
Documents the 3‑D patch mesh requirements (minimum surrounding mesh budget and corner quad diagonal choice) in the user guide. |
Review details
- Files reviewed: 2/2 changed files
- Comments generated: 0
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
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.
Two requirements of
split_along_label_3dwere recorded only in a study rig's README. They are properties of the splitter, not of that rig, and they will bite anyone building a 3-D patch of their own.Both follow from the interior-vertex rule — a split patch is doubled everywhere strictly inside its rim, so every face needs a vertex that is not on the rim.
A patch is about four cells across, minimum, in each direction. A vertical fault in a box needs more than the fault: a blind top setback of two cells or more, four cells or more of fault depth, and three cells or more of base clearance for the carve's cavity to clear the wall. A box shallower than about nine cells cannot hold a splittable vertical fault at all, however finely the fault itself is triangulated. Refining the fault does not help; the budget is in the background mesh.
Corner quads must be triangulated on the other diagonal. A structured extrusion cuts each quad in two, and at a corner one choice produces a triangle whose three vertices all lie on the rim. That face has no interior vertex and the split refuses it. It is a choice of diagonal, not a call for refinement.
Changed here: the
split_along_label_3ddocstring gains both;docs/advanced/fault-networks.mdgains a section in its 3-D part; and the refusal itself now names both remedies instead of asking only for refinement, which is the wrong answer to the second.No behaviour change beyond the message text. 43 tests across the 2-D and 3-D split, fault API, network 3-D, width and conforming-sheet suites pass.
🤖 Generated with Claude Code
https://claude.ai/code/session_01RzK7JXSxsc2GoG7TGnQgUS