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], }