util/hybrj: NaN/Inf handling in enorm can cause false convergence
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Iniziate leggendo il ritorno anticipato per i valori non validi in util/hybrj/hybrj_enorm.H e il controllo della convergenza di fnorm in util/hybrj/hybrj.H. Seguite il percorso con cui i residui NaN/Inf arrivano a info = 1, quindi assicuratevi che i valori non validi seguano un percorso deterministico di non convergenza o di invalidità, mentre le norme realmente nulle continuino a convergere.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
enorm() returns 0.0 when any input component is NaN or Inf. In hybrj, fnorm == 0.0 is treated as successful convergence (info = 1). This can incorrectly classify invalid numerical states as converged solves.
Affected code
util/hybrj/hybrj_enorm.H: early return0.0_rtforisnan/isinfutil/hybrj/hybrj.H: convergence check usesfnorm == 0.0_rt
Why this is a problem
A true zero norm and an invalid norm are semantically different. Folding both into 0.0 hides instability and can produce misleading solver status.
Expected behavior
Invalid numerical values should lead to a non-converged / invalid-state path, not a successful-convergence code path.
Suggested fix
- Return
NaNfromenorm()for invalid inputs, or - Add an explicit validity flag / status propagation, and
- Guard convergence checks against NaN/Inf before accepting
fnorm == 0.
Acceptance criteria
- Invalid residual entries no longer produce
info = 1. - Solver reports a deterministic failure/invalid status for NaN/Inf paths.
- Lingua principale
- C++
- Stelle
- 44
- Fork
- 47
- Merge medio
- 3g 7h
- PR unite (30g)
- 10
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di AMReX-Astro/Microphysics
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
AMReX-Astro/Microphysics#2104 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
ai-code-audit screening
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
AMReX-Astro/Microphysics#2097 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
ai-code-audit screening
Difficoltà 4/5 3-5 giorni Idoneità per principianti 72/100
AMReX-Astro/Microphysics#2096 ·
I maintainer di solito rispondono entro 1 giorno
-
ai-code-audit screening
Difficoltà 4/5 3-5 giorni Idoneità per principianti 66/100
AMReX-Astro/Microphysics#2095 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
ai-code-audit nse
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
AMReX-Astro/Microphysics#2075 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di AMReX-Astro/Microphysics
Issue simili
-
Remove source files from packaging for deb, zip, etcForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
OpenSpace/OpenSpace#4353 · 1 commento ·
I maintainer di solito rispondono entro 5 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
justcallmekoko/ESP32Marauder#1656 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Decompiler: convertCharRef() in xml.y overflows its int4 accumulator on long character referencesForse già presa @kaayzouee l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
NationalSecurityAgency/ghidra#10009 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
mutationpp/Mutationpp#337 ·