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

1import csv 

2 

3from gpaw.test.big.dcdft.pbe_gpaw_pw import tag 

4 

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""" 

76 

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:]] 

83 

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:]] 

89 

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