Open
Conversation
3a42c9b to
fbd730d
Compare
08e0b6d to
4b1c23a
Compare
ef9944e to
55b136f
Compare
## Summary Add the full GVEC and real-Cartesian Boozer chartmap layer on top of the VMEC validation stack. This PR now absorbs the old top PR 327. The real-Cartesian contract belongs here, because this is the first layer where the generalized non-cylindrical Boozer toroidal parameter actually matters end to end. This layer adds: - GVEC state -> Boozer chartmap NetCDF conversion - real-Cartesian `x,y,z` export for the Boozer grid instead of the earlier pseudo-Cartesian embedding - `zeta_convention='boozer'` fixtures and refreshed QA/figure-8 chartmaps on that contract - QA common-case VMEC/GVEC comparison on the shared chartmap path - figure-8 QUASR/GVEC golden validation and reviewer plots - benchmark/artifact helpers used by the end-to-end GVEC coverage - CI installation of `gvec` for the slow GVEC-backed Python tests ## Stack - base: `feature/boozer-chartmap-qa` - head: `feature/boozer-chartmap-gvec` ## Validation scope in this PR - shared QA case across: 1. direct VMEC Boozer 2. VMEC-exported Boozer chartmap 3. GVEC-exported Boozer chartmap - figure-8 QUASR -> GVEC -> Boozer chartmap -> SIMPLE golden validation ## Review Primary GVEC/QUASR review: @Rykath SIMPLE-maintainer follow-up: @krystophny
- Remove duplicate test_chartmap_scaling registration in CMakeLists.txt - Extract run_cmd() to boozer_chartmap_artifacts.py (was duplicated in test_e2e and test_figure8) - Make private plot helpers public in artifacts (close_curve, close_surface_toroidally, sample_indices, set_equal_3d_limits) and import them in test_figure8 instead of redefining locally - Extract _compare_and_summarize() from run_single_equilibrium to improve readability
- Add "Boozer Chartmap Mode" section to README documenting the GVEC workflow: convert with gvec_to_boozer_chartmap.py, configure with field_input/coord_input, run as usual - Add examples/simple_chartmap.in as a commented starting point for chartmap-mode runs - Reference DOC/coordinates-and-fields.md for full coordinate details
3754780 to
0433f16
Compare
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.
Summary
Add GVEC QA comparison path on top of the real-Cartesian Boozer chartmap contract, with cleaned-up test infrastructure and GVEC documentation.
Production code (14 lines in
src/boozer_converter.F90):vmec_B_scaleandvmec_RZ_scaleto chartmap field data after loading from NetCDFTest infrastructure:
Documentation:
simple_chartmap.inconfiguration for chartmap modetools/gvec_to_boozer_chartmap.pyconversion toolVerification
All tests pass (52/52)
Test plan
make test-fastpasses (41/41 tests)make testpasses (52/52 tests including slow)simple_chartmap.inmatches test-verified configuration