Skip to content

Commit

Permalink
Dielectric ok!
Browse files Browse the repository at this point in the history
  • Loading branch information
RemiHelleboid committed Nov 30, 2023
1 parent 203e037 commit 000378d
Show file tree
Hide file tree
Showing 12 changed files with 481 additions and 31 deletions.
2 changes: 1 addition & 1 deletion apps/epsilon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,7 @@ int main(int argc, char** argv) {

MPI_Barrier(MPI_COMM_WORLD);
double start = MPI_Wtime();
MyDielectricFunc.compute_dielectric_function(eta_smearing);
MyDielectricFunc.compute_dielectric_function(eta_smearing, process_rank);
MyDielectricFunc.clear_eigen_states();

MPI_Barrier(MPI_COMM_WORLD); /* IMPORTANT */
Expand Down
Binary file added doc/band_structure_Ge_soc.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
277 changes: 277 additions & 0 deletions parameter_files/materials-cohen.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,277 @@
# Materials parameters for the Empirical Pseudopotential Method.
# All the parameters are from: Chelikowsky, J. R. & Cohen, M. L. Nonlocal pseudopotential calculations for the electronic structure of eleven diamond
# and zinc-blende semiconductors. Phys. Rev. B 14, 556–582 (1976).
---
materials:
- name: Silicon
symbol: Si
lattice-constant: 5.43
pseudo-potential-parameters:
V3S: -0.210
V4S: 0.0
V8S: 0.040
V11S: 0.080
V3A: 0.0
V4A: 0.0
V8A: 0.0
V11A: 0.0
non-local-parameters:
alpha_0_cation: 0.55
beta_0_cation: 0.32
A2_cation: 0.0
alpha_0_anion: 0.55
beta_0_anion: 0.32
A2_anion: 0.0
R0_cation: 1.06
R2_cation: 0.0
R0_anion: 1.06
R2_anion: 0.0
well_type: "square"

- name: Germanium
symbol: Ge
lattice-constant: 5.65
pseudo-potential-parameters:
V3S: -0.221
V4S: -0.160
V8S: 0.019
V11S: 0.056
V3A: 0.0
V4A: 0.0
V8A: 0.0
V11A: 0.0
non-local-parameters:
alpha_0_cation: 0.0
beta_0_cation: 0.0
A2_cation: 0.275
alpha_0_anion: 0.0
beta_0_anion: 0.0
A2_anion: 0.275
R0_cation: 0.0
R2_cation: 1.22
R0_anion: 0.0
R2_anion: 1.22
well_type: "gaussian"

- name: Tin
symbol: Sn
lattice-constant: 6.49
pseudo-potential-parameters:
V3S: -0.190
V4S: -0.144
V8S: -0.008
V11S: 0.040
V3A: 0.0
V4A: 0.0
V8A: 0.0
V11A: 0.0
non-local-parameters:
alpha_0_cation: 0.0
beta_0_cation: 0.40
A2_cation: 0.70
alpha_0_anion: 0.0
beta_0_anion: 0.40
A2_anion: 0.70
R0_cation: 1.06
R2_cation: 1.41
R0_anion: 1.06
R2_anion: 1.41
well_type: "square"

- name: GalliumPhosphide
symbol: GaP
lattice-constant: 5.45
pseudo-potential-parameters:
V3S: -0.230
V4S: 0.0
V8S: 0.020
V11S: 0.057
V3A: 0.100
V4A: 0.070
V8A: 0.000
V11A: 0.025
non-local-parameters:
alpha_0_cation: 0.0
beta_0_cation: 0.30
A2_cation: 0.40
alpha_0_anion: 0.32
beta_0_anion: 0.05
A2_anion: 0.045
R0_cation: 1.27
R2_cation: 1.180
R0_anion: 1.06
R2_anion: 1.180
well_type: "square"

- name: GalliumArsenide
symbol: GaAs
lattice-constant: 5.65
pseudo-potential-parameters:
V3S: -0.214
V4S: -0.157
V8S: 0.014
V11S: 0.067
V3A: 0.055
V4A: 0.038
V8A: 0.008
V11A: 0.001
non-local-parameters:
alpha_0_cation: 0.0
beta_0_cation: 0.0
A2_cation: 0.125
alpha_0_anion: 0.0
beta_0_anion: 0.0
A2_anion: 0.625
R0_cation: 1.27
R2_cation: 1.223
R0_anion: 1.06
R2_anion: 1.223
well_type: "gaussian"

- name: IndiumPhosphide
symbol: InP
lattice-constant: 5.86
pseudo-potential-parameters:
V3S: -0.235
V4S: 0.0176
V8S: 0.000
V11S: 0.053
V3A: 0.080
V4A: 0.060
V8A: 0.0033
V11A: 0.030
non-local-parameters:
alpha_0_cation: 0.0
beta_0_cation: 0.25
A2_cation: 0.55
alpha_0_anion: 0.30
beta_0_anion: 0.05
A2_anion: 0.35
R0_cation: 1.27
R2_cation: 1.269
R0_anion: 1.06
R2_anion: 1.269
well_type: "square"

- name: IndiumArsenide
symbol: InAs
lattice-constant: 6.05
pseudo-potential-parameters:
V3S: -0.230
V4S: -0.172
V8S: 0.000
V11S: 0.045
V3A: 0.055
V4A: 0.045
V8A: 0.020
V11A: 0.010
non-local-parameters:
alpha_0_cation: 0.0
beta_0_cation: 0.35
A2_cation: 0.50
alpha_0_anion: 0.0
beta_0_anion: 0.25
A2_anion: 1.0
R0_cation: 1.27
R2_cation: 1.310
R0_anion: 1.06
R2_anion: 1.310
well_type: "square"


- name: IndiumAntimonide
symbol: InSb
lattice-constant: 6.47
pseudo-potential-parameters:
V3S: -0.200
V4S: -0.153
V8S: 0.010
V11S: 0.044
V3A: 0.044
V4A: 0.030
V8A: 0.017
V11A: 0.015
non-local-parameters:
alpha_0_cation: 0.0
beta_0_cation: 0.45
A2_cation: 0.55
alpha_0_anion: 0.0
beta_0_anion: 0.48
A2_anion: 0.70
R0_cation: 1.27
R2_cation: 1.40
R0_anion: 1.06
R2_anion: 1.40
well_type: "square"

- name: ZincSelenide
symbol: ZnSe
lattice-constant: 5.65
pseudo-potential-parameters:
V3S: -0.218
V4S: -0.155
V8S: 0.029
V11S: 0.064
V3A: 0.139
V4A: 0.062
V8A: 0.023
V11A: 0.016
non-local-parameters:
alpha_0_cation: 0.0
beta_0_cation: 0.0
A2_cation: -0.125
alpha_0_anion: 0.0
beta_0_anion: 0.0
A2_anion: 0.925
R0_cation: 0.0
R2_cation: 1.223
R0_anion: 0.0
R2_anion: 1.223
well_type: "gaussian"

- name: CadmiumTelluride
symbol: CdTe
lattice-constant: 6.48
pseudo-potential-parameters:
V3S: -0.220
V4S: -0.165
V8S: 0.00
V11S: 0.062
V3A: 0.060
V4A: 0.050
V8A: 0.029
V11A: 0.025
non-local-parameters:
alpha_0_cation: 0.0
beta_0_cation: 0.4
A2_cation: 0.00
alpha_0_anion: 1.37
beta_0_anion: 0.4
A2_anion: 2.0
R0_cation: 1.37
R2_cation: 1.40
R2_anion: 1.223
R0_anion: 1.40
well_type: "square"

# - name: AluminiumAntimonide
# symbol: AlSb
# lattice-constant: 6.13
# pseudo-potential-parameters:
# V3S: -0.21
# V8S: 0.02
# V11S: 0.06
# V3A: 0.06
# V4A: 0.04
# V11A: 0.02

# - name: AlAs
# symbol: AluminiumArsenide
# lattice-constant: 5.6605
# pseudo-potential-parameters:
# V3S: -0.221
# V8S: 0.025
# V11S: 0.07
# V3A: 0.08
# V4A: 0.05
# V11A: -0.04
2 changes: 1 addition & 1 deletion python/EPM/EPM.py
Original file line number Diff line number Diff line change
Expand Up @@ -496,6 +496,6 @@ def main_band_structure(mat_params: pMat.MaterialParameterEPM, n_points):
# plot_wave_function_real_space(MyMaterial, k_gamma, rmin, rmax, Nxyz)

Nxyz = 20
# main_epsilon(MyMaterial, Nxyz, q_vect, n_valence, n_conduction)
main_epsilon(MyMaterial, Nxyz, q_vect, n_valence, n_conduction)


31 changes: 19 additions & 12 deletions python/plots/plot_eps_vs_energy.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@
from pathlib import Path


import sys

try:
import scienceplots
plt.style.use(['science', 'high-vis'])
except Exception:
print('Could not load style sheet')
Expand All @@ -19,7 +22,7 @@
mpl.rcParams['figure.figsize'] = [3.5, 2.8]


def plot_dielectric_function_vs_energy(filename: str):
def plot_dielectric_function_vs_energy(filename: str, ax):
# energies, eps_r, eps_i = np.loadtxt(filename, unpack=True, skiprows=1, delimiter=',')
data = np.loadtxt(filename, unpack=True, skiprows=1, delimiter=',')
energies = data[0]
Expand All @@ -28,21 +31,25 @@ def plot_dielectric_function_vs_energy(filename: str):
eps_i = data[2]
else:
eps_i = np.zeros_like(eps_r)
label = Path(filename).stem.split('_')[2::]
label = ["{:.0f}".format(float(x)) for x in label]
s = "$\mathbf{k} = (" + " \ ".join(label) + ")$"
ax.plot(energies, eps_r, label=s)
# ax.plot(energies, eps_i, "-", label="Imaginary", c='r')
abs_eps = np.sqrt(eps_r**2 + eps_i**2)
# ax.plot(energies, abs_eps, label=s)


if __name__ == '__main__':
list_files = sys.argv[1:]
fig, ax = plt.subplots()
ax.plot(energies, eps_r, label="Real", c='b')
ax.plot(energies, eps_i, "-", label="Imaginary", c='r')
for filename in list_files:
plot_dielectric_function_vs_energy(filename, ax)
ax.set_xlabel('Energy [eV]')
ax.set_ylabel('$\epsilon$')
ax.legend()
# ax.set_title('Eps vs Energy')
fig.tight_layout()
filename =f"{Path(filename).with_suffix('.pdf')}"
fig.savefig(filename)


if __name__ == '__main__':
parser = ArgumentParser()
parser.add_argument('-f', '--filename', type=str, help='Filename of the dielectric function.')
args = parser.parse_args()
plot_dielectric_function_vs_energy(args.filename)
filename =f"{Path(list_files[0]).with_suffix('.png')}"
fig.savefig(filename, dpi=600)
plt.show()
Loading

0 comments on commit 000378d

Please sign in to comment.