Skip to content

Audit JOREK shared-edge aliases and sagitta#71

Open
krystophny wants to merge 1 commit into
test/jorek-recovered-chordsfrom
test/jorek-edge-sagitta
Open

Audit JOREK shared-edge aliases and sagitta#71
krystophny wants to merge 1 commit into
test/jorek-recovered-chordsfrom
test/jorek-edge-sagitta

Conversation

@krystophny

Copy link
Copy Markdown
Member

Summary

  • enumerate every physical shared JOREK side once and split each side into its two factor-2 edge segments
  • match reciprocal segments by physical endpoint position, including JOREK neighbors whose coincident endpoints carry different node IDs
  • export exact-curve midpoint sagitta, both incident node-ID pairs, alias status, and membership in the 16-chord field-error tail from Map JOREK recovered samples to source chords #70
  • freeze all reported populations and extrema as regression fixtures

This PR is diagnostic only. It changes no node canonicalization, plane or volume topology, field evaluation, ownership, coordinates, CGS units, or orbit behavior.

Result

The restart contains 24,218 physical shared factor-2 edge segments. Sixteen segments have different endpoint or midpoint node IDs on their two incident elements even though their physical endpoint positions match within the JOREK adjacency tolerance. Eight of these 16 aliased segments belong to the greater-than-2% recovered field-error tail from #70.

This follows JOREK's adjacency contract: neighboring elements may use different node numbers at the same physical endpoint. GORILLA's current refined topology instead keys a shared edge only by the endpoint node-number pair. It consequently creates independent factor-2 edge nodes on these 16 physical interfaces. The tail is concentrated in the same small region, so this nonconforming identity must be corrected before another adaptive topology is evaluated.

Midpoint sagitta does not supply a useful selector by itself:

  • the minimum sagitta among the 16 implicated segments is 0.660866 mm
  • a threshold at that value selects 15,831 of 24,218 segments, including 15,815 false positives
  • a non-implicated segment reaches 9.240181 mm

The geometry-only sagitta proposal from #70 is therefore rejected. The next production change should canonicalize all reciprocal JOREK sides by physical adjacency, joining both coincident endpoint aliases and their refined side nodes. Its regression must reduce the alias count from 16 to zero while preserving exact geometry, field values, coordinate conventions, CGS units, and the existing tetrahedron ownership and continuity checks. The complete factor-2 error and tail diagnostics must then be rerun before any local curvature refinement.

Relation to the stacked work

This PR is stacked on #70.

No refinement above factor 2 enters a volume mesh in this stack.

Verification

Before, no shared-edge alias test existed:

$ ctest --test-dir /tmp/gorilla-pr71-before-build -R '^test_jorek_edge_sagitta$' --no-tests=error
No tests were found!!!
exit code 8

After:

$ test_jorek_edge_sagitta.x restart.h5 jorek_edge_sagitta.csv
shared factor-2 edge segments=24218
minimum implicated sagitta [m]=  6.608664E-04
maximum other sagitta [m]=  9.240181E-03
aliased shared segments=16 implicated=8
segments selected at implicated minimum=15831 false positives=15815
PASS: JOREK shared-edge sagitta classification

$ ctest --test-dir /tmp/gorilla-jorek-adaptive --output-on-failure
100% tests passed, 0 tests failed out of 18
Total Test time (real) = 51.98 sec

$ fo
Static: OK (79 modules, 79 changed, 79 affected)
Build: OK
Tests: skipped, no affected tests
Lint: OK
All stages passed (.2s)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant