Repository navigation
HDF5Schema - API! - ⚠️ Make the Euler-Lagrange matrix output optional and off by default - #493
Merged
Merged
Conversation
…d off by default The ForceFreeStates/EulerLagrangeMatrices group holds the ideal A-K matrices, and on a kinetic run the kinetic set, sampled on the psi grid. Each is mpert x mpert x npsi complex, so the group scales as mpert^2 times npsi and dominates the output: 98 of 104 MB on a DIII-D n=1 Riccati run, and far more at higher mode counts or finer grids. Nothing in the code reads the group back; it is a diagnostic for inspecting the coefficient system. Gate it behind a new write_el_matrices control, default false, which takes that run's gpec.h5 from 104.8 MB to 5.8 MB. Runtime is unchanged (17.52 s vs 17.50 s, min of five warm runs). Set write_el_matrices = true in [ForceFreeStates] to restore the group. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
… document it The schema test now opts into write_el_matrices so the metadata contract still covers the group, and checks the default is off. Move the conventions-table entry into the ForceFreeStates row, flag the opt-in in workflow.md, and trim run-specific figures from the field docstring and write-site comment. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… a default run omits the group Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ig reference Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…t-in and the default Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…l-matrix-output # Conflicts: # docs/development/hdf5-conventions.md
… the opt-in path and correct the option's docstring Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Collaborator
|
@d-burg — completed the requested full SDCC fanout against develop Result: no changes in comparable quantities; harness exit code 0, with no run failures.
Environment: Julia 1.12.6, x86_64 Linux, CI manifest ./regress_fanout.sh --refs 7817f0e7a,8d2eca4a5 --harness-ref 8d2eca4a5 --name pr493_8d2eca4a5_vs_7817f0e7a_20261028SDCC report: Full regression report (21 cases)Third-party human review and approval are required before merge. |
d-burg
marked this pull request as ready for review
October 29, 2026 01:26
matt-pharr
approved these changes
Oct 29, 2026
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.
Release note
ForceFreeStates/EulerLagrangeMatricesgroup is no longer written by default. Setwrite_el_matrices = truein[ForceFreeStates]to restore it.The Euler-Lagrange matrix group is a diagnostic that nothing reads back, and it dominates the output: 98 of 104 MB on a DIII-D n = 1 Riccati run. It is now opt-in, which takes that run's
gpec.h5from 104.8 MB to 5.8 MB with no change in runtime.Changes
ForceFreeStatesControl.write_el_matrices(defaultfalse) gates theEulerLagrangeMatrices/{Ideal,Kinetic}group. It needswrite_outputs_to_HDF5 = true.src/, the analysis and plotting code, the regression harness, the examples or the tests reads the group; the HDF5 metadata table skips paths that are absent.EulerLagrangeMatrices/Kinetic/f0is written, and runs the metadata walk over the kinetic set, so the kinetic writer keeps its coverage;stability.mdandworkflow.md, andhdf5-conventions.mdnames both opt-in gates (gal_basis_outputforBasis/,write_el_matricesfor the matrices).Regression report
Latest SDCC fanout rerun: develop
7817f0e7avs8d2eca4a5— 21 cases; no changed comparable quantities; harness exit 0. Full report and limitations.gal_resistive_pehas all eight quantities missing on both refs and provides no numerical validation. Earlier reports are retained below. The previous run,regress --cases diiid_n1,solovev_n1 --refs 6fc89d021,d068e2d97 --forceon feynman, left all 53diiid_n1and all 22solovev_n1quantities unchanged.On feynman at
8d2eca4a5:runtests_torque_response.jl(45),runtests_h5_schema.jl(6, 17) andruntests_fullruns.jl(22) pass.Changes since the review
295063146). One docs conflict, inhdf5-conventions.md: develop's removal ofMatch/from the Galerkin entry is kept, with this PR's "write_el_matrices-gated" added.8d2eca4a5: the kinetic test coverage above, the corrected option docstring (the full letter set A, B, C, D, E, H, F, K, G; each matrix isnumpert_total × numpert_totalat every ψ), and the conventions-row wording.Notes for reviewers
main. Pulling it into a helper, and aligning the option's name withgal_basis_output, is left to the consolidation, which renames deck keys anyway.🤖 Generated with Claude Code