Use libneo field abstraction and boozer_sub; drop SIMPLE copies#389
Draft
krystophny wants to merge 1 commit into
Draft
Use libneo field abstraction and boozer_sub; drop SIMPLE copies#389krystophny wants to merge 1 commit into
krystophny wants to merge 1 commit into
Conversation
Cut SIMPLE over to libneo as the single source for the Boozer converter and its field layer. Delete the five files now owned by libneo (field_base, field_vmec, vmec_field_eval, boozer_converter, boozer_chartmap_io) and drop them from src/CMakeLists.txt; the identically-named libneo modules resolve in their place. SIMPLE call sites and use statements are unchanged. Requires libneo with the dual-compatible boozer_sub API (optional vmec_file, optional trailing sqrt_g_ss_B) and the axis_healing_power_law/rho_axis_heal symbols in new_vmec_stuff_mod.
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
Cut SIMPLE over to libneo as the single source for the Boozer converter and its field abstraction. Deletes the five files now owned by libneo and resolves the identically-named modules from the linked libneo
neolibrary. This is the SIMPLE half of the converter consolidation (itpplasma/libneo#305); rabe's half is itpplasma/rabe#100.Changes
git rm(−2027 lines) and drop fromsrc/CMakeLists.txt:src/boozer_converter.F90-> libneoboozer_subsrc/field/boozer_chartmap_io.f90-> libneoboozer_chartmap_iosrc/field/field_base.f90(magnetic_field_t) -> libneofield_basesrc/field/field_vmec.f90(vmec_field_t) -> libneofield_vmecsrc/field/vmec_field_eval.f90-> libneovmec_field_evalSIMPLE's call sites and
usestatements are unchanged: libneo exports the same module/type/procedure names. The remaining SIMPLE field subclasses (field_coils,field_splined,field_boozer_chartmap,field_newton) andfield.F90/field_clonestay in SIMPLE and extend libneo'smagnetic_field_t.Dependency / merge order
Requires libneo with: the converter
boozer_sub(itpplasma/libneo#310), its dual-compatible API — optionalvmec_fileand optional trailingsqrt_g_ss_B(#315) — the angle transforms (#311) and chartmap spoke (#312), and theaxis_healing_power_law/rho_axis_healsymbols innew_vmec_stuff_mod(#306, which SIMPLE's config namelist imports). Built and validated against libneofeat/boozer-field-single-source(which integrates #310-#312, #315, and #306). Re-pin to a libneomaincommit once those land.Verification
Built CPU (gfortran) against the local libneo branch (
-DLIBNEO_SOURCE_DIR=...), 372/372 targets clean. Boozer test suite:golden_record_boozer(the acceptance pin: confined_fraction/times_lost vs frozen golden at rtol 1.5e-7) passes against the libneo-provided converter, confirming the cutover is behavior-preserving. (booz_xform/map2disc Python chartmap tests skip: optional packages not installed in this environment.)