Skip to content

Commit f160bfd

Browse files
andyclaude
andcommitted
Step 5: report per element, and settle the correlation-consistent alarm
The first pass marked a whole basis set "structural" if any element differed, which put cc-pVDZ, cc-pV5Z and STO-3G in the same bucket as a mapping that is simply wrong. It now counts the ELEMENTS affected, and the picture changes completely: 6-31G 2/30 elements (K, Ca -- BSE has d functions) STO-2G 1/21 J-DZP 1/72 (Ge) -- so that curated mapping is right ANO-RCC 6/96 ADZP 70/70 -- so THAT curated mapping is wrong AQZP 51/51 -- likewise A basis where every element differs is evidence about the name mapping, not about the data. ADZP is not jorge-adzp. cc-pVDZ and cc-pV5Z differed on every element, which looked alarming for the two most used correlation-consistent sets. It is packaging. BSE fuses the general contraction and the extra uncontracted function into one block with a zero-padded column; ECCE splits them, and its contracted functions omit the ninth primitive that BSE includes. Both forms are in circulation. Measured rather than argued about: the same water RHF in ORCA 6.1.1 gives ECCE form (8-primitive contractions) -76.0267321043 BSE form (9-primitive contractions) -76.026732104559 identical to ten decimal places. So the correlation-consistent family is safe either way, which removes the largest apparent risk in the whole exercise. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EFMUNbw2UpRPmgsqviAowb
1 parent dc6fe07 commit f160bfd

2 files changed

Lines changed: 44 additions & 36 deletions

File tree

‎tools/basissets/diffreport.json‎

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"3-21G": {
33
"bse": "3-21g",
44
"bucket": "direct",
5-
"detail": "Sc: shell SP(2) vs D(2); Sc: shell SP(1) vs D(1); Sc: shell D(2) vs SP(2)",
5+
"detail": "34/55 elements differ (Ag, As, Br, Cd, Co, Cr), ...",
66
"verdict": "structural"
77
},
88
"4-31G": {
@@ -20,7 +20,7 @@
2020
"6-31G": {
2121
"bse": "6-31g",
2222
"bucket": "direct",
23-
"detail": "K: 7 shells vs 5; Ca: 7 shells vs 5",
23+
"detail": "2/30 elements differ (Ca, K)",
2424
"verdict": "structural"
2525
},
2626
"6-31G-Blaudeau": {
@@ -32,25 +32,25 @@
3232
"ADZP": {
3333
"bse": "jorge-adzp",
3434
"bucket": "curated",
35-
"detail": "H: 5 shells vs 6; He: 5 shells vs 4; Li: 10 shells vs 12",
35+
"detail": "70/70 elements differ (Ag, Al, Ar, As, At, Au), ...",
3636
"verdict": "structural"
3737
},
3838
"ANO-RCC": {
3939
"bse": "ano-rcc",
4040
"bucket": "direct",
41-
"detail": "Yb: shell SSSSSSSSSSS(25) vs SSSSSSSSSSSS(25); Yb: shell PPPPPPPPPP(22) vs PPPPPPPPPPP(22); Pb: shell FFFFFF(12) vs FFFFFFFF(12)",
41+
"detail": "6/96 elements differ (Cm, Fr, Pb, Pu, Ra, Yb)",
4242
"verdict": "structural"
4343
},
4444
"AQZP": {
4545
"bse": "jorge-aqzp",
4646
"bucket": "curated",
47-
"detail": "H: 14 shells vs 4; Li: 21 shells vs 5; Be: 21 shells vs 5",
47+
"detail": "51/51 elements differ (Ag, Al, Ar, As, B, Be), ...",
4848
"verdict": "structural"
4949
},
5050
"ATZP": {
5151
"bse": "jorge-atzp",
5252
"bucket": "curated",
53-
"detail": "Mg: shell S(1) vs S(2); Mg: shell S(2) vs S(1); Rb: shell S(1) vs S(2)",
53+
"detail": "13/51 elements differ (Ag, Cd, In, Mg, Nb, Pd), ...",
5454
"verdict": "structural"
5555
},
5656
"Ahlrichs TZV": {
@@ -98,7 +98,7 @@
9898
"J-DZP": {
9999
"bse": "jorge-dzp",
100100
"bucket": "curated",
101-
"detail": "Ge: shell S(1) vs S(2); Ge: shell S(2) vs S(1); Ge: shell P(1) vs P(3)",
101+
"detail": "1/72 elements differ (Ge)",
102102
"verdict": "structural"
103103
},
104104
"J-DZP-DKH": {
@@ -110,25 +110,25 @@
110110
"J-QZP": {
111111
"bse": "jorge-qzp",
112112
"bucket": "curated",
113-
"detail": "Mo: shell S(1) vs S(2); Mo: shell S(2) vs S(1); Mo: shell P(1) vs P(2)",
113+
"detail": "3/54 elements differ (I, Mo, Xe)",
114114
"verdict": "structural"
115115
},
116116
"J-QZP-DKH": {
117117
"bse": "jorge-qzp-dkh",
118118
"bucket": "curated",
119-
"detail": "Mo: shell S(1) vs S(2); Mo: shell S(2) vs S(1); Mo: shell P(1) vs P(2)",
119+
"detail": "3/54 elements differ (I, Mo, Xe)",
120120
"verdict": "structural"
121121
},
122122
"J-TZP": {
123123
"bse": "jorge-tzp",
124124
"bucket": "curated",
125-
"detail": "Ca: 18 shells vs 20; Rb: shell S(1) vs S(2); Rb: shell S(2) vs S(3)",
125+
"detail": "11/54 elements differ (Ag, Ca, Cd, In, Pd, Rb), ...",
126126
"verdict": "structural"
127127
},
128128
"J-TZP-DKH": {
129129
"bse": "jorge-tzp-dkh",
130130
"bucket": "curated",
131-
"detail": "Ca: 18 shells vs 20; Rb: shell S(1) vs S(2); Rb: shell S(2) vs S(3)",
131+
"detail": "11/54 elements differ (Ag, Ca, Cd, In, Pd, Rb), ...",
132132
"verdict": "structural"
133133
},
134134
"LANL2DZ ECP": {
@@ -194,25 +194,25 @@
194194
"Partridge Uncontr. 1": {
195195
"bse": "partridge uncontracted 1",
196196
"bucket": "curated",
197-
"detail": "Cl: 29 shells vs 2; Ar: 29 shells vs 2; K: 32 shells vs 2",
197+
"detail": "22/36 elements differ (Ar, As, Br, Ca, Cl, Co), ...",
198198
"verdict": "structural"
199199
},
200200
"Partridge Uncontr. 2": {
201201
"bse": "partridge uncontracted 2",
202202
"bucket": "curated",
203-
"detail": "Be: 16 shells vs 1; B: 27 shells vs 2; C: 27 shells vs 2",
203+
"detail": "33/34 elements differ (Al, Ar, As, B, Be, Br), ...",
204204
"verdict": "structural"
205205
},
206206
"Partridge Uncontr. 3": {
207207
"bse": "partridge uncontracted 3",
208208
"bucket": "curated",
209-
"detail": "Li: 18 shells vs 1; Be: 18 shells vs 1; B: 31 shells vs 2",
209+
"detail": "28/28 elements differ (Al, Ar, B, Be, C, Ca), ...",
210210
"verdict": "structural"
211211
},
212212
"Partridge Uncontr. 4": {
213213
"bse": "partridge uncontracted 4",
214214
"bucket": "curated",
215-
"detail": "Sc: 49 shells vs 3; Ti: 49 shells vs 3; V: 49 shells vs 3",
215+
"detail": "10/10 elements differ (Co, Cr, Cu, Fe, Mn, Ni), ...",
216216
"verdict": "structural"
217217
},
218218
"Roos Augmented Double Zeta ANO": {
@@ -224,25 +224,25 @@
224224
"Roos Augmented Triple Zeta ANO": {
225225
"bse": "roos augmented triple zeta ano",
226226
"bucket": "direct",
227-
"detail": "H: 6 shells vs 3; He: 6 shells vs 3; Li: 8 shells vs 4",
227+
"detail": "27/28 elements differ (Al, Ar, B, Be, C, Cl), ...",
228228
"verdict": "structural"
229229
},
230230
"STO-2G": {
231231
"bse": "sto-2g",
232232
"bucket": "direct",
233-
"detail": "Sr: 5 shells vs 6",
233+
"detail": "1/21 elements differ (Sr)",
234234
"verdict": "structural"
235235
},
236236
"STO-3G": {
237237
"bse": "sto-3g",
238238
"bucket": "direct",
239-
"detail": "Co: shell SP(3) vs D(3); Co: shell D(3) vs SP(3); Ga: 4 shells vs 5",
239+
"detail": "24/53 elements differ (Ag, As, Br, Cd, Co, Ga), ...",
240240
"verdict": "structural"
241241
},
242242
"STO-6G": {
243243
"bse": "sto-6g",
244244
"bucket": "direct",
245-
"detail": "Sc: shell SP(6) vs D(6); Sc: shell D(6) vs SP(6); Ti: shell SP(6) vs D(6)",
245+
"detail": "16/36 elements differ (As, Br, Co, Cr, Cu, Fe), ...",
246246
"verdict": "structural"
247247
},
248248
"SV (Dunning-Hay)": {
@@ -254,7 +254,7 @@
254254
"Sadlej pVTZ": {
255255
"bse": "sadlej pvtz",
256256
"bucket": "direct",
257-
"detail": "H: 2 shells vs 5; Li: 3 shells vs 10; Be: 3 shells vs 10",
257+
"detail": "19/19 elements differ (Be, Br, C, Ca, Cl, F), ...",
258258
"verdict": "structural"
259259
},
260260
"Stuttgart RLC ECP": {
@@ -332,25 +332,25 @@
332332
"aug-pc-1": {
333333
"bse": "aug-pc-1",
334334
"bucket": "direct",
335-
"detail": "Kr: shell DDD(8) vs D(8)",
335+
"detail": "1/36 elements differ (Kr)",
336336
"verdict": "structural"
337337
},
338338
"aug-pc-2": {
339339
"bse": "aug-pc-2",
340340
"bucket": "direct",
341-
"detail": "Kr: shell FF(2) vs F(2)",
341+
"detail": "1/36 elements differ (Kr)",
342342
"verdict": "structural"
343343
},
344344
"aug-pc-3": {
345345
"bse": "aug-pc-3",
346346
"bucket": "direct",
347-
"detail": "Kr: shell GG(2) vs G(2)",
347+
"detail": "1/36 elements differ (Kr)",
348348
"verdict": "structural"
349349
},
350350
"aug-pc-4": {
351351
"bse": "aug-pc-4",
352352
"bucket": "direct",
353-
"detail": "Kr: shell HH(2) vs H(2)",
353+
"detail": "1/36 elements differ (Kr)",
354354
"verdict": "structural"
355355
},
356356
"aug-pcSseg-0": {
@@ -416,7 +416,7 @@
416416
"cc-pV(5+d)Z": {
417417
"bse": "cc-pv(5+d)z",
418418
"bucket": "direct",
419-
"detail": "Al: shell FFF(3) vs DDDDD(5); Al: shell GG(2) vs FFF(3); Al: shell H(1) vs GG(2)",
419+
"detail": "6/6 elements differ (Al, Ar, Cl, P, S, Si)",
420420
"verdict": "structural"
421421
},
422422
"cc-pV(D+d)Z": {
@@ -428,19 +428,19 @@
428428
"cc-pV(Q+d)Z": {
429429
"bse": "cc-pv(q+d)z",
430430
"bucket": "direct",
431-
"detail": "Al: shell FF(2) vs DDDD(4); Al: shell G(1) vs FF(2); Al: shell DDDD(4) vs G(1)",
431+
"detail": "6/6 elements differ (Al, Ar, Cl, P, S, Si)",
432432
"verdict": "structural"
433433
},
434434
"cc-pV(T+d)Z": {
435435
"bse": "cc-pv(t+d)z",
436436
"bucket": "direct",
437-
"detail": "Al: shell F(1) vs DDD(3); Al: shell DDD(3) vs F(1); Si: shell F(1) vs DDD(3)",
437+
"detail": "6/6 elements differ (Al, Ar, Cl, P, S, Si)",
438438
"verdict": "structural"
439439
},
440440
"cc-pV5Z": {
441441
"bse": "cc-pv5z",
442442
"bucket": "direct",
443-
"detail": "H: 5 shells vs 15; He: 5 shells vs 15; Li: 6 shells vs 20",
443+
"detail": "35/35 elements differ (Al, Ar, As, B, Be, Br), ...",
444444
"verdict": "structural"
445445
},
446446
"cc-pV5Z(fi/sf/fw)": {
@@ -494,7 +494,7 @@
494494
"cc-pV8Z": {
495495
"bse": "cc-pv8z",
496496
"bucket": "direct",
497-
"detail": "H: shell II(2) vs IH(2)",
497+
"detail": "1/2 elements differ (H)",
498498
"verdict": "structural"
499499
},
500500
"cc-pV9Z": {
@@ -506,7 +506,7 @@
506506
"cc-pVDZ": {
507507
"bse": "cc-pvdz",
508508
"bucket": "direct",
509-
"detail": "H: 2 shells vs 3; He: 2 shells vs 3; Li: 3 shells vs 5",
509+
"detail": "35/35 elements differ (Al, Ar, As, B, Be, Br), ...",
510510
"verdict": "structural"
511511
},
512512
"cc-pVDZ(fi/sf/fw)": {
@@ -560,7 +560,7 @@
560560
"cc-pVQZ": {
561561
"bse": "cc-pvqz",
562562
"bucket": "direct",
563-
"detail": "Na: shell FF(2) vs DDD(3); Na: shell G(1) vs FF(2); Na: shell DDD(3) vs G(1)",
563+
"detail": "2/35 elements differ (Mg, Na)",
564564
"verdict": "structural"
565565
},
566566
"cc-pVQZ(fi/sf/fw)": {
@@ -614,7 +614,7 @@
614614
"cc-pVTZ": {
615615
"bse": "cc-pvtz",
616616
"bucket": "direct",
617-
"detail": "Na: shell F(1) vs DD(2); Na: shell DD(2) vs F(1); Mg: shell F(1) vs DD(2)",
617+
"detail": "2/35 elements differ (Mg, Na)",
618618
"verdict": "structural"
619619
},
620620
"cc-pVTZ(fi/sf/fw)": {
@@ -668,7 +668,7 @@
668668
"cc-pwCV5Z-DK": {
669669
"bse": "cc-pwcv5z-dk",
670670
"bucket": "direct",
671-
"detail": "Fe: shell I(1) vs II(2)",
671+
"detail": "1/10 elements differ (Fe)",
672672
"verdict": "structural"
673673
},
674674
"cc-pwCVQZ-DK": {
@@ -698,7 +698,7 @@
698698
"pc-1": {
699699
"bse": "pc-1",
700700
"bucket": "direct",
701-
"detail": "Kr: shell DD(7) vs D(7)",
701+
"detail": "1/36 elements differ (Kr)",
702702
"verdict": "structural"
703703
},
704704
"pc-2": {
@@ -752,7 +752,7 @@
752752
"pcseg-0": {
753753
"bse": "pcseg-0",
754754
"bucket": "direct",
755-
"detail": "Li: 4 shells vs 5; Be: 4 shells vs 5; B: shell P(2) vs P(3)",
755+
"detail": "34/36 elements differ (Al, Ar, As, B, Be, Br), ...",
756756
"verdict": "structural"
757757
},
758758
"pcseg-1": {

‎tools/basissets/diffreport.py‎

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,15 @@ def key(sh):
116116
[]).append(va / vb)
117117

118118
if structural:
119-
return "structural", "; ".join(structural[:3])
119+
# Count the ELEMENTS affected, not the individual complaints. A
120+
# whole basis set being called "structural" because one element
121+
# out of thirty differs is not a useful thing to hand a reviewer:
122+
# STO-3G differs from BSE's only on Ga, and 3-21G only on Sc.
123+
affected = sorted({c.split(":")[0] for c in structural})
124+
return "structural", ("%d/%d elements differ (%s)%s"
125+
% (len(affected), len(shared),
126+
", ".join(affected[:6]),
127+
"" if len(affected) <= 6 else ", ..."))
120128
detail = "%d values, worst %.1e" % (nvalues, worst)
121129
if reordered:
122130
detail += ", %d atom(s) reordered" % len(reordered)

0 commit comments

Comments
 (0)