Input generator validation — 2026-10-12

Scope: the five active input generators in this repository. Archived generators are excluded. Each fix is committed separately with version 2026.10.12.

GAMESS (US)

Sources: official input manual, $CONTRL and input format.

The existing functional names, including PBE0 and M06-2X, are valid. NGAUSS applies to STO and Pople basis sets, not TZV/MINI/MIDI. STO allows 2–6 primitives, N21 allows 3 or 6, and N31 allows 4–6. Polarization counts NDFUNC and NPFUNC cannot exceed 3. The dialog now limits these fields, rejects invalid N21 counts, selects ROHF when an open shell would otherwise use RHF, and excludes GVB/MCSCF jobs that need configuration blocks this generator cannot supply. Control records are wrapped to fit 80 columns.

Regression tests cover these constraints, keyword preservation on wrapped records, and preview/save behavior. Tests validate generated text and real Qt behavior; a GAMESS executable is not installed in the available environment.

MOPAC

Sources: official usage guide, spin keyword, force calculation, thermochemistry.

Open-shell defaults now include UHF; explicitly requested RHF/CI is preserved. Incompatible UHF/CI combinations are rejected. Charge and spin controls replace conflicting copies in free-form keywords, and NOSYM is not duplicated. 1SCF is matched as a whole keyword. The thermochemistry template includes FORCE; the supplied geometry must already be optimized, as required by MOPAC. Logic and Qt regressions validate keyword composition and preview/save behavior.

NWChem

Sources: DFT, SCF, CCSD, TCE, basis conventions, tasks.

PBE96, BLYP, LDA and TPSS expand to their documented exchange/correlation components. Open-shell DFT uses ODFT; correlation jobs include an SCF spin reference, with NOPEN for multiplicities above eight. Open-shell CCSD uses TCE, and TCE explicitly selects CCSD. Correlation-consistent and def2 bases use spherical functions. CCSD derivatives and meta-GGA frequencies request numerical differentiation. Invalid start names block saving; titles cannot inject lines. 43 logic tests and 39 Qt tests passed. No NWChem executable is installed.

Psi4

Sources: SCF references, DFT methods.

Existing functional names are preserved. Closed-shell references cannot be used for open-shell jobs, and HF/correlation jobs reject KS references. Output names are Python string literals; saving replaces the complete output-setting line, including names with quotes or parentheses. Imports are at module scope and files use LF. 37 logic tests and 25 Qt tests passed. Psi4 is not installed.

PySCF

Sources: local moleditpy_pyscf-calculator/pyscf_calculator/calc_tab.py and worker.py; DFT, molecules and ECPs, dispersion implementation.

Functional and basis choices match the Calculator, including its M11 LibXC alias. HF/DFT references include all six Calculator choices. Memory, threads, SCF cycles/tolerance, grid, ddCOSMO solvents and dispersion controls are saved in presets. Symmetry defaults off. Open-shell restricted defaults become UHF/UKS; explicit ROHF/ROKS remain available. Unsupported WB97X-D presets are rejected. VV10 plus additional dispersion is rejected, as is a dispersion correction on a correlated job. LANL2DZ and heavy-element def2 bases emit matching ECPs. The generated script stops on unconverged SCF before post-HF work. Checkpoint names are escaped Python literals, and redundant molecule rebuilding is removed. 62 logic tests and 53 Qt tests passed, including Python syntax checks for each functional, option presets and error recovery. PySCF is not installed here; these checks do not establish SCF convergence or replace engine execution.