pub struct CarrierConcentration {
pub band: BandStructure,
pub temperature_k: f64,
pub nd: f64,
pub na: f64,
}Expand description
Carrier concentration calculations for a semiconductor.
Computes intrinsic carrier concentration, doped carrier densities, and Fermi level positions.
Fields§
§band: BandStructureBand structure of the material.
temperature_k: f64Temperature in Kelvin.
nd: f64Donor concentration in cm^-3.
na: f64Acceptor concentration in cm^-3.
Implementations§
Source§impl CarrierConcentration
impl CarrierConcentration
Sourcepub fn new(band: BandStructure, temperature_k: f64, nd: f64, na: f64) -> Self
pub fn new(band: BandStructure, temperature_k: f64, nd: f64, na: f64) -> Self
Create a new carrier concentration model.
Sourcepub fn intrinsic_concentration(&self) -> f64
pub fn intrinsic_concentration(&self) -> f64
Intrinsic carrier concentration ni in cm^-3.
ni = sqrt(Nc * Nv) * exp(-Eg / (2 * k_B * T))
Sourcepub fn fermi_dirac_half(eta: f64) -> f64
pub fn fermi_dirac_half(eta: f64) -> f64
Fermi-Dirac integral of order 1/2 (approximation).
F_{1/2}(eta) approximated using the Joyce-Dixon formula.
Sourcepub fn electron_concentration(&self) -> f64
pub fn electron_concentration(&self) -> f64
Electron concentration n0 in cm^-3 (assuming complete ionization).
Sourcepub fn hole_concentration(&self) -> f64
pub fn hole_concentration(&self) -> f64
Hole concentration p0 in cm^-3.
Sourcepub fn doping_type(&self) -> DopingType
pub fn doping_type(&self) -> DopingType
Doping type of the material.
Sourcepub fn fermi_level_shift(&self) -> f64
pub fn fermi_level_shift(&self) -> f64
Fermi level position relative to intrinsic Fermi level in eV.
Ef - Ei = k_B * T * ln(n0 / ni)
Sourcepub fn compensation_ratio(&self) -> f64
pub fn compensation_ratio(&self) -> f64
Compensation ratio: min(Nd, Na) / max(Nd, Na).
Sourcepub fn debye_length(&self) -> f64
pub fn debye_length(&self) -> f64
Debye length in cm.
Trait Implementations§
Source§impl Clone for CarrierConcentration
impl Clone for CarrierConcentration
Source§fn clone(&self) -> CarrierConcentration
fn clone(&self) -> CarrierConcentration
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more