summaryrefslogtreecommitdiff
path: root/element.py
diff options
context:
space:
mode:
Diffstat (limited to 'element.py')
-rw-r--r--element.py145
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],
+}
+
+