diff options
Diffstat (limited to 'element.py')
-rw-r--r-- | element.py | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/element.py b/element.py new file mode 100644 index 0000000..a8111ad --- /dev/null +++ b/element.py @@ -0,0 +1,145 @@ +from math import * + + +# Interface to the HGH pseudopotential parameters. +# See https://arxiv.org/abs/cond-mat/9803286 +class Element: + def __init__(self, symbol): + # Get raw data from the table below + global elements + el = elements[symbol] + + self.Zion = el[0] + self.rloc = el[1] + self.Cloc = [el[2], el[3], el[4], el[5]] + self.rl = [el[6], el[10], el[14]] + + self.h = {} + for l in range(0, 3): + self.h[l] = {} + for i in range(1, 4): + self.h[l][i] = {} + # Only the diagonal h-values are explicitly given + self.h[l][i][i] = el[6 + 4 * l + i] + + # Calculate the off-diagonal h-values, see Eqs.(20)-(28) + self.h[0][1][2] = -(1/2) * sqrt( 3/ 5) * self.h[0][2][2] + self.h[0][1][3] = (1/2) * sqrt( 5/ 21) * self.h[0][3][3] + self.h[0][2][3] = -(1/2) * sqrt(100/ 63) * self.h[0][3][3] + self.h[1][1][2] = -(1/2) * sqrt( 5/ 7) * self.h[1][2][2] + self.h[1][1][3] = (1/6) * sqrt( 35/ 11) * self.h[1][3][3] + self.h[1][2][3] = -(1/6) * sqrt(196/ 11) * self.h[1][3][3] + self.h[2][1][2] = -(1/2) * sqrt( 7/ 9) * self.h[2][2][2] + self.h[2][1][3] = (1/2) * sqrt( 63/143) * self.h[2][3][3] + self.h[2][2][3] = -(1/2) * sqrt(324/143) * self.h[2][3][3] + + # Mirror around diagonal, see Eq.(29) + for l in range(0, 3): + for i in range(1, 4): + for j in range(1, i): + self.h[l][i][j] = self.h[l][j][i] + + +# Raw HGH pseudopotential parameters for semiconductor materials. +# See https://arxiv.org/abs/cond-mat/9803286 +# +# Indices: Meanings: +# 0 Zion +# 1 2 3 4 5 rloc C1 C2 C3 C4 +# 6 7 8 9 r0 h0_1 h0_2 h0_3 +# 10 11 12 13 r1 h1_1 h1_2 h1_3 +# 14 15 16 17 r2 h2_1 h2_2 h2_3 +elements = { + "B" : [3, + 0.433930, -5.578642, 0.804251, 0.000000, 0.000000, + 0.373843, 6.233928, 0.000000, 0.000000, + 0.360393, 0.000000, 0.000000, 0.000000, + 0.000000, 0.000000, 0.000000, 0.000000], + "C" : [4, + 0.348830, -8.513771, 1.228432, 0.000000, 0.000000, + 0.304553, 9.522842, 0.000000, 0.000000, + 0.232677, 0.000000, 0.000000, 0.000000, + 0.000000, 0.000000, 0.000000, 0.000000], + "N" : [5, + 0.289179, -12.234820, 1.766407, 0.000000, 0.000000, + 0.256605, 13.552243, 0.000000, 0.000000, + 0.270134, 0.000000, 0.000000, 0.000000, + 0.000000, 0.000000, 0.000000, 0.000000], + "O" : [6, + 0.247621, -16.580318, 2.395701, 0.000000, 0.000000, + 0.221786, 18.266917, 0.000000, 0.000000, + 0.256829, 0.000000, 0.000000, 0.000000, + 0.000000, 0.000000, 0.000000, 0.000000], + "Al" : [3, + 0.450000, -8.491351, 0.000000, 0.000000, 0.000000, + 0.460104, 5.088340, 2.679700, 0.000000, + 0.536744, 2.193438, 0.000000, 0.000000, + 0.000000, 0.000000, 0.000000, 0.000000], + "Si" : [4, + 0.440000, -7.336103, 0.000000, 0.000000, 0.000000, + 0.422738, 5.906928, 3.258196, 0.000000, + 0.484278, 2.727013, 0.000000, 0.000000, + 0.000000, 0.000000, 0.000000, 0.000000], + "P" : [5, + 0.430000, -6.654220, 0.000000, 0.000000, 0.000000, + 0.389803, 6.842136, 3.856693, 0.000000, + 0.440796, 3.282606, 0.000000, 0.000000, + 0.000000, 0.000000, 0.000000, 0.000000], + "S" : [6, + 0.420000, -6.554492, 0.000000, 0.000000, 0.000000, + 0.361757, 7.905303, 4.471698, 0.000000, + 0.405285, 3.866579, 0.000000, 0.000000, + 0.000000, 0.000000, 0.000000, 0.000000], + "Zn" : [2, + 0.570000, 0.000000, 0.000000, 0.000000, 0.000000, + 0.640712, 2.088557, -0.218270, -0.941317, + 0.967605, 0.163546, -0.227086, 0.000000, + 1.330352, 0.010486, 0.000000, 0.000000], + "Ga" : [3, + 0.560000, 0.000000, 0.000000, 0.000000, 0.000000, + 0.610791, 2.369325, -0.249015, -0.551796, + 0.704596, 0.746305, -0.513132, 0.000000, + 0.982580, 0.075437, 0.000000, 0.000000], + "Ge" : [4, + 0.540000, 0.000000, 0.000000, 0.000000, 0.000000, + 0.493743, 3.826891, 1.100231, -1.344218, + 0.601064, 1.362518, -0.627370, 0.000000, + 0.788369, 0.191205, 0.000000, 0.000000], + "As" : [5, + 0.520000, 0.000000, 0.000000, 0.000000, 0.000000, + 0.456400, 4.560761, 1.692389, -1.373804, + 0.550562, 1.812247, -0.646727, 0.000000, + 0.685283, 0.312373, 0.000000, 0.000000], + "Se" : [6, + 0.510000, 0.000000, 0.000000, 0.000000, 0.000000, + 0.432531, 5.145131, 2.052009, -1.369203, + 0.472473, 2.858806, -0.590671, 0.000000, + 0.613420, 0.434829, 0.000000, 0.000000], + "Cd" : [2, + 0.625000, -1.796838, 0.000000, 0.000000, 0.000000, + 0.828465, 1.485292, -0.424753, -0.407986, + 0.972873, 0.469208, -0.448111, 0.000000, + 1.240949, 0.065412, 0.000000, 0.000000], + "In" : [3, + 0.610000, 2.865777, 0.000000, 0.000000, 0.000000, + 0.770602, 1.256194, -0.397255, -0.278329, + 0.858132, 0.494459, -0.380789, 0.000000, + 1.088691, 0.129208, 0.000000, 0.000000], + "Sn" : [4, + 0.605000, 4.610912, 0.000000, 0.000000, 0.000000, + 0.663544, 1.648791, -0.141974, -0.576546, + 0.745865, 0.769355, -0.445070, 0.000000, + 0.944459, 0.225115, 0.000000, 0.000000], + "Sb" : [5, + 0.590000, 6.680228, 0.000000, 0.000000, 0.000000, + 0.597684, 1.951477, 0.037537, -0.786631, + 0.672122, 0.970313, -0.466731, 0.000000, + 0.856557, 0.300103, 0.000000, 0.000000], + "Te" : [6, + 0.575000, 9.387085, 0.000000, 0.000000, 0.000000, + 0.556456, 2.046890, -0.029333, -0.881119, + 0.615262, 1.033478, -0.481172, 0.000000, + 0.805101, 0.317411, 0.000000, 0.000000], +} + + |