@@ -472,6 +472,43 @@ Both per-user, both non-root, both started automatically by the
472472 double hybrids stayed hidden). Watch out that ` xcFuncDefault ` is an
473473 ** index** into the list, so append rather than insert, and verify the
474474 defaults still resolve to the same entry afterwards.
475+ - ** A combo whose default is a bare integer opens BLANK when the list is
476+ built conditionally.** ` wx.Choice.SetSelection() ` ignores an
477+ out-of-range index without complaint, so the control shows nothing
478+ selected and ` GetValue() ` returns ` "" ` — which every generator
479+ translates to no keyword at all. Same silent-emission class as a
480+ dialog string that doesn't match the generator's, same cause: one
481+ list, several lengths, a default written against the longest. Found
482+ in every Gaussian runtype dialog at once
483+ (` ES.Runtype.GeomOpt.InitialHessian ` , ` default = 1 ` against a
484+ one-entry list for all but a handful of theories) — and the same file's
485+ ` CheckDependency() ` already carried the ` len()==2 ` guard the
486+ constructor was missing. Always write these as
487+ ` choices.index("Name") ` , never an integer; ` xcFuncDefault ` is the
488+ same hazard (a stale ` 36 ` was selecting Mod. Perdew-Wang 1K where
489+ B3LYP was intended). ` tests/dialogs ` now fails on any combo left with
490+ no selection, in every category/theory/runtype context.
491+ - ** Verify a code's keyword list by running the code, not by reading its
492+ manual.** Sweeping all 55 functionals ` nedtheory.py ` offers through
493+ NWChem 7.2.3 found three that abort the job every time (CAM-B3LYP and
494+ LC-wPBE put ` cam ` on the ` xc ` line, where it is a directive of its
495+ own; plain ` hcth147 ` is deprecated and fatal, it wants
496+ ` hcth147@tz2p ` ). The same sweep showed the documented spellings for
497+ dispersion (` disp grimme3 ` , a trailing ` bj ` ) are rejected outright —
498+ only ` disp vdw <1..4> ` works — and that D3/D3BJ with a functional
499+ lacking parameters is ** fatal rather than ignored** , which is why
500+ ` ai.nwchem ` validates the pairing in the main flow. Where a support
501+ table like that is needed, keep it in the generator alone and let it
502+ report; putting a copy in the dialog recreates the
503+ two-hand-maintained-lists bug this file already warns about twice.
504+ - ** Retired codes are not maintained, and the suite no longer checks
505+ them.** ` tests/dialogs/cases.py ` 's ` RETIRED ` (Gaussian-03,
506+ Gaussian-98, GAMESS-UK, Amica) is skipped unless named with ` --code ` .
507+ It is * not* the same as ` NOT_IN_MENU ` , which only means "absent from
508+ the New Calculation menu" — Polyrate and GROMACS are in that one and
509+ are maintained. ** MetaDyn is not retired** : its ` .edml ` declares
510+ ` codeName="NWChem" ` , so it is NWChem's plane-wave metadynamics front
511+ end, and it is what ` QuantumESPRESSO.edml ` was modelled on.
475512- ** A ` .desc ` entry's ` Begin ` wording can silently stop matching between
476513 versions of the same code** , not just between different codes.
477514 ` gaussian-16.desc ` 's ` MULLIKEN ` entry had `Begin= Mulliken atomic
0 commit comments