Skip to content

Commit aa105eb

Browse files
andyclaude
andcommitted
CLAUDE.md: blank combos, verifying keywords by running the code, retired codes
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EFMUNbw2UpRPmgsqviAowb
1 parent 41e94c2 commit aa105eb

1 file changed

Lines changed: 37 additions & 0 deletions

File tree

‎CLAUDE.md‎

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)