Untitled

mail@pastecode.io avatar
unknown
plain_text
6 months ago
1.2 kB
0
Indexable
Never
import numpy as np
import matplotlib.pyplot as plt

# Constants
k = 8.617333262145e-5  # Boltzmann constant in eV/K
T = 300  # Temperature in Kelvin
E_F = 0  # Fermi energy level, assumed to be at 0 eV for simplicity

# Energy range
E = np.linspace(-0.5, 0.5, 1000)  # Energy range from -0.5 eV to 0.5 eV

# Fermi-Dirac distribution function
def fermi_dirac(E):
    return 1 / (1 + np.exp((E - E_F) / (k * T)))

# Plotting the Fermi-Dirac distribution function
plt.figure(figsize=(8, 6))

# Plot for n-type semiconductor (Fermi level slightly above mid-gap)
E_F_n_type = 0.05  # Fermi level for n-type
plt.plot(E, fermi_dirac(E - E_F_n_type), label='n-type (E_F > 0)', color='blue')

# Plot for p-type semiconductor (Fermi level slightly below mid-gap)
E_F_p_type = -0.05  # Fermi level for p-type
plt.plot(E, fermi_dirac(E - E_F_p_type), label='p-type (E_F < 0)', color='red')

# Fermi level lines
plt.axvline(x=E_F_n_type, linestyle='--', color='blue', label='Fermi level (n-type)')
plt.axvline(x=E_F_p_type, linestyle='--', color='red', label='Fermi level (p-type)')

# Set plot properties
plt.title('Fermi-Dirac Distribution Function')
plt.xlabel('Energy (eV)')
plt.ylabel('Probability of Occupancy')
plt.legend()
plt.grid(True)
plt.show()
Leave a Comment