ForceFreeStates - BUG - Fixed-boundary zero-crossing check can reject genuine Newcomb crossings
Maintainers usually reply within 3 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- julia
- Domain
- backend, testing-qa
Research direction
Start with src/ForceFreeStates/FixedBoundaryStability.jl:71-86 and compare its crossing check with the Fortran behavior documented in GPEC#292. Then run a fixed-boundary Solov'ev q0 scan at default and tightened tolerances, including a pole case. Done means Julia finds the same genuine crossings at both tolerance settings while still rejecting the pole.
Written by the indexing model from the issue text.
Description
check_for_zero_crossings! (src/ForceFreeStates/FixedBoundaryStability.jl:71-86) is a line-for-line port of the Fortran ode_output_monitor test. When crit changes sign between two accepted ODE steps, it interpolates u linearly to the estimated root and accepts the crossing only if the midpoint value lies between the endpoints and |crit_mid| < 0.5*min(|crit|,|crit_prev|). Accepted steps can be long where crit is strongly nonlinear, so a genuine Newcomb zero crossing can fail this test and be discarded.
In the Fortran code this defect is reproduced and documented in GPEC#292: for fixed-boundary Solov'ev cases near q0 ≈ 1.03, DCON misses crossings at its default tolerances and finds them only after the tolerances are tightened. The Julia check has the same logic, so the same failure is expected, but I have not yet run the Julia q0 scan.
Simply relaxing the magnitude test is not the fix, because the sign change can also come from a pole of crit, which must not be counted. A robust check brackets the root, for example by bisection on the integrator's dense output, and distinguishes a zero (|crit| decreasing towards the bracket point) from a pole (|crit| growing).
Acceptance: a fixed-boundary Solov'ev q0 scan where Julia reports the same crossings at default and at tightened tolerances, with a pole case that is still rejected.
Chris&AI
- Dominant language
- Julia
- Stars
- 11
- Forks
- 7
- Avg merge
- 4d 1h
- Merged PRs (30d)
- 68
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from OpenFUSIONToolkit/GPEC
-
Difficulty 1/5 Under an hour Newbie friendliness 82/100
OpenFUSIONToolkit/GPEC#644 ·
Maintainers usually reply within 3 days
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
OpenFUSIONToolkit/GPEC#643 ·
Maintainers usually reply within 3 days
-
PerturbedEquilibrium - FEATURE - Complete the resistive perturbed-equilibrium workflow from Galerkin and matched resultsPossibly taken @matt-pharr claimed this 2 days ago. Openfeature
OpenFUSIONToolkit/GPEC#635 · 1 comment · 1 assignee ·
Maintainers usually reply within 3 days
-
test
Difficulty 4/5 3-5 days Newbie friendliness 25/100
OpenFUSIONToolkit/GPEC#633 · 2 comments ·
Maintainers usually reply within 3 days
-
Tearing - FEATURE - Add a general modified Rutherford equation for island evolutionPossibly taken @StuartBenjamin claimed this 2 days ago. Openfeature
OpenFUSIONToolkit/GPEC#630 · 1 assignee ·
Maintainers usually reply within 3 days
All issues in OpenFUSIONToolkit/GPEC
Similar issues
-
authority-de-dommel ready-for-agent
Difficulty 1/5 Under an hour Newbie friendliness 78/100
Deltares/Ribasim-NL#997 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Sienna-Platform/InfrastructureSystems.jl#675 ·
Maintainers usually reply within 2 days
-
TargetEncoder reuses the first level's shrinkage factor for all levels when m > 0Possibly taken @parth-patel010 claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
JuliaAI/MLJTransforms.jl#95 · 1 comment ·
-
Difficulty 1/5 Under an hour Newbie friendliness 78/100
epiforecasts/BVDOutbreakSize#1232 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100