electronic_structure#
Electronic structure, density of states, carrier concentrations
Functions
Fermi-Dirac distribution function. |
|
Get carrier concentrations by integrating density of states or using effective masses. |
|
Calculate the effective density of states (N_c or N_v) for a non-degenerate semiconductor. |
|
Get Dos object from json file or string. |
|
Maxwell-Boltzmann distribution function. |
|
Find Fermi level by solving the charge neutrality condition. |
- f0(E, fermi, T)[source]#
Fermi-Dirac distribution function.
- Parameters:
E (float) – Energy in eV.
fermi (float) – Fermi level in eV.
T (float) – Temperature in kelvin.
- Returns:
occupation – Fermi-Dirac occupation probability at energy E.
- Return type:
float
- get_carrier_concentrations(dos, fermi_level, temperature, band_gap=None)[source]#
Get carrier concentrations by integrating density of states or using effective masses.
Code from pymatgen.electronic_structure.dos.FermiDos.get_doping The function has been modified to return the absolute values of hole and electron concentrations.
Calculate carrier concentrations at a given Fermi level and temperature. A simple Left Riemann sum is used for integrating the density of states over energy & equilibrium Fermi-Dirac distribution.
- Parameters:
dos (dict or Dos) –
Density of states to integrate. Can be provided as density of states D(E) or using effective masses.
Format for effective masses is a dict with the following keys:
”m_eff_h” : holes effective mass in units of m_e (electron mass)
”m_eff_e” : electrons effective mass in units of m_h
band_gap : needs to be provided in arguments
Format for explicit DOS (dictionary) with the following keys:
’energies’ : list or np.array with energy values
’densities’ : list or np.array with total density values
’structure’ : pymatgen Structure of the material, needed for DOS volume and charge normalization
Alternatively, a pymatgen Dos object (Dos, CompleteDos, or FermiDos).
fermi_level (float) – The Fermi level relative to the VBM in eV.
temperature (float) – The temperature in Kelvin.
band_gap (float) – The band gap in eV. If None is determined from the DOS.
Returns
-------- –
- hfloat
Absolute value of hole concentration in 1/cm^3.
- nfloat
Absolute value of electron concentration in 1/cm^3.
- get_dos_from_effective_mass(m_eff, T)[source]#
Calculate the effective density of states (N_c or N_v) for a non-degenerate semiconductor.
- Parameters:
m_eff (float) – Effective mass (in units of kg)
T (float) – Temperature (in Kelvin)
- Returns:
N – Density of states (in cm^-3).
- Return type:
float
- maxwell_boltzmann(E, T, clip=True)[source]#
Maxwell-Boltzmann distribution function. Can be clipped to prevent divergence
- Parameters:
E (float) – Energy in eV.
fermi (float) – Fermi level in eV.
T (float) – Temperature in kelvin.
clip (bool) – Clip exponential factor to 700 to avoid divergence, returns 1e304.
- Returns:
occupation – Maxwell-Boltzmann occupation probability at energy E.
- Return type:
float
- solve_intrinsic_fermi_level(dos, temperature, band_gap, xtol=1e-05)[source]#
Find Fermi level by solving the charge neutrality condition.
- Parameters:
dos (dict or Dos) –
Density of states to integrate. Can be provided as density of states D(E) or using effective masses.
Format for effective masses is a dict with the following keys:
”m_eff_h” : holes effective mass in units of m_e (electron mass)
”m_eff_e” : electrons effective mass in units of m_h
band_gap : needs to be provided in arguments
Format for explicit DOS (dictionary) with the following keys:
’energies’ : list or np.array with energy values
’densities’ : list or np.array with total density values
’structure’ : pymatgen Structure of the material, needed for DOS volume and charge normalization
Alternatively, a pymatgen Dos object (Dos, CompleteDos, or FermiDos).
temperature (float) – The temperature in Kelvin.
band_gap (float) – The band gap in eV. If None is determined from the DOS.
xtol (float) – Tolerance for bisect method (scipy).
- Returns:
fermi_level – Fermi level dictated by charge neutrality.
- Return type:
float