Repository navigation
Commit aab4d77
Basis data: Fortran D exponents were being read without the exponent
The root cause of the "wrong basis set data" found while adjudicating
against the codes' built-ins turns out to be systemic and much simpler
than bad data.
11 files held 24045 values written in Fortran D notation:
0.30612488044D-01
EDSIGaussianBasisSetLibrary.C reads these with strtod(), which stops at
the "D" and returns the mantissa alone -- 0.30612488044, ten times too
large. Perl's numeric conversion, used by rdStandardGBS.pm and the
wr*GBS.pm writers, does exactly the same. Both confirmed directly rather
than assumed. Nothing reported an error anywhere; the basis was simply
wrong for every element written that way.
Converted to E notation, which every reader handles. Among the files
affected: STO-6G, WTBS, and the cc-pV*Z files behind cc-pCVDZ, cc-pwCVDZ
and the aug-cc-pV*Z diffuse sets. STO-6G for argon could not even be
parsed before and now reproduces both codes' built-in copies to 3e-09
Hartree.
tests/basis now fails on any D notation in a .BAS or .POT, self-tested by
reintroducing an affected file.
CORRECTION to my earlier reporting. I described this as ECCE's stored
data being wrong by up to 1.78 Hartree, measured by converting both
sources and running them. The conclusion was right but the mechanism I
gave was not: Python's float() REJECTS D notation, so my comparison was
silently skipping those rows, and what I measured was my own parser
dropping data rather than ECCE's reading it wrongly. Both are real
faults; they are not the same fault, and the number I quoted belonged to
mine.
Ahlrichs VDZ, Ahlrichs TZV and cc-pVQZ-DK were separately regenerated from
BSE before this was understood. They are kept: the regenerated files are
correct, verified against both codes' built-ins, and carry more precision.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EFMUNbw2UpRPmgsqviAowb1 parent 49fa740 commit aab4d77
18 files changed
Lines changed: 9132 additions & 8994 deletions
File tree
- data/admin/basissets
- tests/basis
- tools/basissets
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
738 | 738 | | |
739 | 739 | | |
740 | 740 | | |
741 | | - | |
742 | | - | |
| 741 | + | |
| 742 | + | |
743 | 743 | | |
744 | 744 | | |
745 | 745 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
530 | 530 | | |
531 | 531 | | |
532 | 532 | | |
533 | | - | |
| 533 | + | |
534 | 534 | | |
535 | 535 | | |
536 | 536 | | |
| |||
916 | 916 | | |
917 | 917 | | |
918 | 918 | | |
919 | | - | |
920 | | - | |
921 | | - | |
922 | | - | |
| 919 | + | |
| 920 | + | |
| 921 | + | |
| 922 | + | |
923 | 923 | | |
924 | | - | |
| 924 | + | |
925 | 925 | | |
926 | 926 | | |
927 | 927 | | |
| |||
957 | 957 | | |
958 | 958 | | |
959 | 959 | | |
960 | | - | |
| 960 | + | |
961 | 961 | | |
962 | 962 | | |
963 | 963 | | |
| |||
998 | 998 | | |
999 | 999 | | |
1000 | 1000 | | |
1001 | | - | |
| 1001 | + | |
1002 | 1002 | | |
1003 | 1003 | | |
1004 | 1004 | | |
| |||
Large diffs are not rendered by default.
Large diffs are not rendered by default.
0 commit comments