Coverage for gpaw/test/big/dcdft/pbe_gpaw_pw_verify.py: 0%
28 statements
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-12 00:18 +0000
« prev ^ index » next coverage.py v7.7.1, created at 2025-07-12 00:18 +0000
1import csv
3from gpaw.test.big.dcdft.pbe_gpaw_pw import tag
5# calculated with pw=1200, k-point-density=8, width=0.06, fit=(5, 0.02)
6data = """
7H,17.459,10.34,2.705
8He,17.264,1.047,6.06
9Li,20.259,14.058,3.365
10Be,8.008,123.494,3.348
11B,7.241,237.967,3.464
12C,11.645,209.686,3.566
13N,28.797,54.159,3.694
14O,18.525,51.715,3.895
15F,19.049,37.197,3.735
16Ne,23.938,1.43,6.456
17Na,37.321,7.609,-1.136
18Mg,22.892,36.231,4.033
19Al,16.517,77.66,4.609
20Si,20.52,88.516,4.326
21P,21.532,68.002,4.348
22S,17.187,84.008,4.207
23Cl,38.949,19.016,4.378
24Ar,52.201,0.788,7.033
25K,73.563,3.608,3.772
26Ca,42.395,17.422,3.273
27Sc,24.573,54.613,3.393
28Ti,17.437,112.194,3.594
29V,13.543,182.429,3.802
30Cr,11.852,161.406,7.241
31Mn,11.471,121.43,0.493
32Fe,11.472,193.38,5.62
33Co,10.91,215.828,5.115
34Ni,10.982,203.94,4.947
35Cu,12.081,137.188,5.078
36Zn,15.122,76.379,5.407
37Ga,20.538,49.728,5.378
38Ge,23.967,60.21,4.906
39As,22.637,68.795,4.294
40Se,29.761,47.304,4.481
41Br,39.768,22.302,4.866
42Kr,66.26,0.636,7.271
43Rb,91.121,2.786,3.765
44Sr,54.662,12.391,4.328
45Y,32.858,41.22,3.014
46Zr,23.323,93.99,3.322
47Nb,18.034,170.426,3.92
48Mo,15.765,259.394,4.367
49Ru,13.735,309.531,4.858
50Rh,14.137,253.502,5.26
51Pd,15.304,169.253,5.614
52Ag,17.807,92.333,5.751
53Cd,22.575,46.346,6.714
54In,27.244,36.05,5.299
55Sn,36.581,36.313,4.912
56Sb,31.593,50.484,4.485
57Te,34.708,45.262,4.716
58I,50.594,18.551,5.083
59Xe,87.204,0.529,7.235
60Cs,117.31,1.961,3.492
61Ba,63.575,8.813,2.853
62Hf,22.586,108.63,3.452
63Ta,18.302,193.805,3.813
64W,16.115,304.826,4.245
65Re,14.926,365.244,4.435
66Os,14.194,400.169,4.813
67Ir,14.452,348.912,5.111
68Pt,15.613,246.217,5.496
69Au,18.208,138.897,5.823
70Hg,28.515,10.958,11.346
71Tl,31.107,27.488,5.364
72Pb,31.872,37.943,4.848
73Bi,36.831,42.751,4.64
74Rn,93.543,0.523,7.228
75"""
77names = [r.split(',')[0] for r in data.split()][1:]
78ref = {}
79for name in names:
80 for l in data.split():
81 if l.split(',')[0] == name:
82 ref[name] = [float(v) for v in l.split(',')[1:]]
84csvreader = csv.reader(open(tag + '_raw.csv', 'rb'))
85calc = {}
86for r in csvreader:
87 if "#" not in r[0]:
88 calc[r[0]] = [float(v) for v in r[1:]]
90for name in names:
91 if name in calc.keys():
92 vref = ref[name][0]
93 vcalc = calc[name][0]
94 errmsg = name + ': ' + str(vref) + ' vs ' + str(vcalc)
95 assert abs(vcalc - vref) / vref < 0.002, errmsg
96 b0ref = ref[name][1]
97 b0calc = calc[name][1]
98 errmsg = name + ': ' + str(b0ref) + ' vs ' + str(b0calc)
99 assert abs(b0calc - b0ref) / b0ref < 0.01, errmsg
100 b1ref = ref[name][2]
101 b1calc = calc[name][2]
102 errmsg = name + ': ' + str(b1ref) + ' vs ' + str(b1calc)
103 assert abs(b1calc - b1ref) / b1ref < 0.05, errmsg