Skip to content

FFS - REFACTOR - Reorganize ForceFreeStates into subdirectories (pure move) - #400

Open
matt-pharr wants to merge 3 commits into
developfrom
refactor/forcefreestates-reorg
Open

FFS - REFACTOR - Reorganize ForceFreeStates into subdirectories (pure move)#400
matt-pharr wants to merge 3 commits into
developfrom
refactor/forcefreestates-reorg

Conversation

@matt-pharr

Copy link
Copy Markdown
Collaborator

Split the module into ownership-based subdirectories with zero logic changes:

  • Riccati/: Riccati.jl split into Types (IntegrationChunk, ChunkPropagator), Propagators (chunk FM integration, renormalization, propagator application), Crossings (singular-surface crossing algorithms), DeltaPrimeBVP (STRIDE BVP assembly/solve + PEST-3 decomposition), and Driver (chunk orchestration).
  • Surfaces/: singular-surface machinery in one place — Types (SingType, SingAsymptotics), Finding + Asymptotics (split of Sing.jl), Resist (GGJ coefficients only), ResistEval.
  • Matching/: outer<->inner matching seed — DeltaPrimeData (shared Delta-prime payload) and resonant_match_rpec/ResonantMatchResult (from Resist.jl).
  • ForceFreeStatesStructs.jl dissolved: FourFitVars -> Fourfit.jl, FreeBoundaryResult -> Free.jl, OdeState/EdgeScanState -> EulerLagrange.jl, module-wide types (ModeSpace, DebugSettings, Internal, Control) -> CoreTypes.jl.
  • Sing.jl's EL derivative kernel (sing_der!, el_derivatives!, compute_node_xi_s!) moved to EulerLagrange.jl where it belongs.
  • Include order in ForceFreeStates.jl rearranged so types load before the code that dispatches on them; updated the stability.md autodocs Pages list and stale file-path references in docs/comments.

Verified: full test suite passes; gpec.h5 bit-identical vs the pre-move commit on the forward and riccati decks (h5diff; only the date_created attribute and HDF5 object-header timestamps differ); regression harness diiid_n1 47/47 unchanged with zero diff; local Documenter build clean.

Closes #394

… move)

Split the module into ownership-based subdirectories with zero logic changes:

- Riccati/: Riccati.jl split into Types (IntegrationChunk, ChunkPropagator),
  Propagators (chunk FM integration, renormalization, propagator application),
  Crossings (singular-surface crossing algorithms), DeltaPrimeBVP (STRIDE BVP
  assembly/solve + PEST-3 decomposition), and Driver (chunk orchestration).
- Surfaces/: singular-surface machinery in one place — Types (SingType,
  SingAsymptotics), Finding + Asymptotics (split of Sing.jl), Resist (GGJ
  coefficients only), ResistEval.
- Matching/: outer<->inner matching seed — DeltaPrimeData (shared Delta-prime
  payload) and resonant_match_rpec/ResonantMatchResult (from Resist.jl).
- ForceFreeStatesStructs.jl dissolved: FourFitVars -> Fourfit.jl,
  FreeBoundaryResult -> Free.jl, OdeState/EdgeScanState -> EulerLagrange.jl,
  module-wide types (ModeSpace, DebugSettings, Internal, Control) -> CoreTypes.jl.
- Sing.jl's EL derivative kernel (sing_der!, el_derivatives!,
  compute_node_xi_s!) moved to EulerLagrange.jl where it belongs.
- Include order in ForceFreeStates.jl rearranged so types load before the code
  that dispatches on them; updated the stability.md autodocs Pages list and
  stale file-path references in docs/comments.

Verified: full test suite passes; gpec.h5 bit-identical vs the pre-move commit
on the forward and riccati decks (h5diff; only the date_created attribute and
HDF5 object-header timestamps differ); regression harness diiid_n1 47/47
unchanged with zero diff; local Documenter build clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@matt-pharr
matt-pharr requested a review from logan-nc August 17, 2026 17:18
@matt-pharr matt-pharr self-assigned this Aug 17, 2026
Base automatically changed from refactor/forcefreestates-result to develop August 17, 2026 21:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

refactor Behavior-preserving restructuring

Projects

None yet

Development

Successfully merging this pull request may close these issues.

FFS - REFACTOR - Reorganize ForceFreeStates into subdirectories (pure-move PR)

1 participant