Two related cleanups carried by the historical-record PR #252 that are worth landing on top of #178.
File split
Extract from the current combined files:
DeltaPrime.jl — Δ' matrix assembly (≈817 lines on the rewrite branch).
Chunking.jl — cost-based load-balanced partitioning, including the empirical log-divergent cost model from Glasser 2018 / STRIDE (≈202 lines).
This makes Riccati.jl / Integration.jl smaller and gives Δ' assembly and chunking their own units of testability and review.
Unified integration_method / integration_threads API
Collapse the per-feature flags (use_parallel, use_riccati, parallel_threads) on PerturbedEquilibriumControl into a single dispatcher:
integration_method::Symbol — e.g. :ChunkedRiccati (default), :LegacyEulerLagrange, plus whatever follow-on names make sense.
integration_threads::Int — threads available to the dispatched method.
Pre-0.1.0 we don't need deprecation shims for the old flags — see the project memory note no-deprecation-shims-pre-010. Update the example gpec.toml files and any tests that still reference the old flags.
Reference implementation: src/ForceFreeStates/{Integration,Riccati,DeltaPrime,Chunking}.jl on feature/forcefreestates-rewrite (PR #252).
Acceptance:
DeltaPrime.jl and Chunking.jl exist as their own files with focused responsibilities.
use_parallel / use_riccati / parallel_threads removed from PerturbedEquilibriumControl; only integration_method + integration_threads remain.
- All example TOMLs and tests updated.
Two related cleanups carried by the historical-record PR #252 that are worth landing on top of #178.
File split
Extract from the current combined files:
DeltaPrime.jl— Δ' matrix assembly (≈817 lines on the rewrite branch).Chunking.jl— cost-based load-balanced partitioning, including the empirical log-divergent cost model from Glasser 2018 / STRIDE (≈202 lines).This makes
Riccati.jl/Integration.jlsmaller and gives Δ' assembly and chunking their own units of testability and review.Unified
integration_method/integration_threadsAPICollapse the per-feature flags (
use_parallel,use_riccati,parallel_threads) onPerturbedEquilibriumControlinto a single dispatcher:integration_method::Symbol— e.g.:ChunkedRiccati(default),:LegacyEulerLagrange, plus whatever follow-on names make sense.integration_threads::Int— threads available to the dispatched method.Pre-0.1.0 we don't need deprecation shims for the old flags — see the project memory note
no-deprecation-shims-pre-010. Update the examplegpec.tomlfiles and any tests that still reference the old flags.Reference implementation:
src/ForceFreeStates/{Integration,Riccati,DeltaPrime,Chunking}.jlonfeature/forcefreestates-rewrite(PR #252).Acceptance:
DeltaPrime.jlandChunking.jlexist as their own files with focused responsibilities.use_parallel/use_riccati/parallel_threadsremoved fromPerturbedEquilibriumControl; onlyintegration_method+integration_threadsremain.