Repository navigation
InnerLayer - REFACTOR - Move the GGJ solvers into a shared ToroidalLayer library behind a layer-model interface - #653
Open
matt-pharr wants to merge 2 commits into
Open
matt-pharr wants to merge 2 commits into
matt-pharr wants to merge 2 commits into
Conversation
…into a shared ToroidalLayer library
…model interface with GGJ as its reference model
matt-pharr
force-pushed
the
refactor/toroidal-layer-library
branch
from
November 5, 2026 16:27
552e975 to
89c4807
Compare
matt-pharr
marked this pull request as ready for review
November 5, 2026 19:18
This branch has not been deployed
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
The GGJ inner layer's Wasow far-field construction, rotated-ray solver and Hermite (Galerkin) solver now live in a shared
InnerLayer.ToroidalLayerlibrary, so a new toroidal layer model only supplies its equations and reuses the solvers; GGJ is unchanged for users.Regression report
SDCC fan-out, all 27 cases,
develop@ 4376e71 vs this branch: every case unchanged, every tracked quantity diff 0.0e+00, including the GGJ:ray(ggj_ray_q500i) and:galerkin(ggj_reference,gal_resistive_diiid_galinner) inner-layer cases. Run at 552e975; the branch was then rebased onto develop's harness change (#634), andsrc/at 89c4807 is identical to 552e975.Full report (27 cases)
Notes for reviewers
5c5f68753is thegit mvofRay.jl,Galerkin.jlandInnerAsymptotics.jlfromGGJ/toToroidalLayer/(does not build on its own);89c4807e1makes them model-generic.ToroidalLayerParametersrequires no fields. The solvers read a model only through the interface functions documented on it: equations (layer_rows,layer_weak_form), far field (wasow_basis,split_block,power_exponents), ray rates (default_ray_angle,parabolic_rate,ohm_rate,fast_rates) and normalization (inner_Q,rescale_delta,profile_conversions).mercier_di,p1,q0, …), its equations and GW2020 basis with the closed-form split (GGJ/Equations.jl), the reference surfaces and:shooting; its:rayand:galerkinmethods forward toray_response/galerkin_responseand the profile counterparts.GGJModel,solve_inner,solve_rayand qualified names such asGGJ.q0andGGJ.ode_matrixresolve as before. GGJ:rayΔ± is bit-identical to develop on nine (surface, Q) points from Q = 0.05 to 500i.KAISTModel(Kim, Cho & Choi 1988 drift-resistive layer) on the same library.🤖 Generated with Claude Code