pub struct DriftDiffusion {
pub mu_n: f64,
pub mu_p: f64,
pub temperature_k: f64,
pub v_sat_n: f64,
pub v_sat_p: f64,
}Expand description
Drift-diffusion transport model for semiconductors.
Models carrier transport including mobility, diffusion, and velocity saturation.
Fields§
§mu_n: f64Electron mobility in cm^2/(V·s).
mu_p: f64Hole mobility in cm^2/(V·s).
temperature_k: f64Temperature in K.
v_sat_n: f64Saturation velocity for electrons in cm/s.
v_sat_p: f64Saturation velocity for holes in cm/s.
Implementations§
Source§impl DriftDiffusion
impl DriftDiffusion
Sourcepub fn new(
mu_n: f64,
mu_p: f64,
temperature_k: f64,
v_sat_n: f64,
v_sat_p: f64,
) -> Self
pub fn new( mu_n: f64, mu_p: f64, temperature_k: f64, v_sat_n: f64, v_sat_p: f64, ) -> Self
Create a new drift-diffusion model.
Sourcepub fn silicon_300k() -> Self
pub fn silicon_300k() -> Self
Silicon at 300K with typical mobility values.
Sourcepub fn diffusion_coefficient_n(&self) -> f64
pub fn diffusion_coefficient_n(&self) -> f64
Electron diffusion coefficient via Einstein relation: D_n = mu_n * V_T.
Sourcepub fn diffusion_coefficient_p(&self) -> f64
pub fn diffusion_coefficient_p(&self) -> f64
Hole diffusion coefficient via Einstein relation: D_p = mu_p * V_T.
Sourcepub fn einstein_ratio(&self) -> f64
pub fn einstein_ratio(&self) -> f64
Verify Einstein relation: D/mu = k_B T / q.
Sourcepub fn electron_drift_velocity(&self, electric_field: f64) -> f64
pub fn electron_drift_velocity(&self, electric_field: f64) -> f64
Electron drift velocity with saturation effects.
v_d = mu * E / (1 + mu * |E| / v_sat)
Sourcepub fn hole_drift_velocity(&self, electric_field: f64) -> f64
pub fn hole_drift_velocity(&self, electric_field: f64) -> f64
Hole drift velocity with saturation effects.
Sourcepub fn electron_current_density(
&self,
n: f64,
electric_field: f64,
dn_dx: f64,
) -> f64
pub fn electron_current_density( &self, n: f64, electric_field: f64, dn_dx: f64, ) -> f64
Electron current density (drift + diffusion) in A/cm^2.
J_n = q * n * mu_n * E + q * D_n * dn/dx
Sourcepub fn hole_current_density(
&self,
p: f64,
electric_field: f64,
dp_dx: f64,
) -> f64
pub fn hole_current_density( &self, p: f64, electric_field: f64, dp_dx: f64, ) -> f64
Hole current density (drift + diffusion) in A/cm^2.
Sourcepub fn caughey_thomas_mobility(
mu_min: f64,
mu_max: f64,
n_total: f64,
n_ref: f64,
alpha: f64,
) -> f64
pub fn caughey_thomas_mobility( mu_min: f64, mu_max: f64, n_total: f64, n_ref: f64, alpha: f64, ) -> f64
Mobility with doping dependence (Caughey-Thomas model).
mu = mu_min + (mu_max - mu_min) / (1 + (N / N_ref)^alpha)
Sourcepub fn mean_free_path_n(&self) -> f64
pub fn mean_free_path_n(&self) -> f64
Mean free path estimate from mobility in cm.
Trait Implementations§
Source§impl Clone for DriftDiffusion
impl Clone for DriftDiffusion
Source§fn clone(&self) -> DriftDiffusion
fn clone(&self) -> DriftDiffusion
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more