pub struct Tauc;Expand description
Tauc optical band-gap edge: A · ((x − e_gap) · H(x − e_gap))^p.
Parameters (in order): [amplitude, e_gap, exponent]
amplitude(A) scales the absorption above the gap.e_gapis the optical band-gap energy: the edge onset. Below it the model is exactly0(HeavisideH(x − e_gap)); at and above it the absorption rises as a power law in the excess energy(x − e_gap).exponent(p) is the Tauc power (p = 2for an allowed indirect transition,p = 1/2for an allowed direct one). The classic Tauc plot fits(α·hν)^{1/p}linearly inhν; here we expose the forward edgeA·(hν − E_g)^pdirectly.
The kernel is 0 for x ≤ e_gap (where the base (x − e_gap) is non-positive and
a fractional exponent would otherwise be NaN). The numpy benchmark formula is
identical — np.where(x > e_gap, A·(x − e_gap)^p, 0) — so numpy↔Rust parity is exact.
Trait Implementations§
Source§impl Model for Tauc
impl Model for Tauc
Source§fn jacobian(&self, x: &[f64], params: &[f64]) -> Vec<f64>
fn jacobian(&self, x: &[f64], params: &[f64]) -> Vec<f64>
Central finite-difference Jacobian. The Heaviside cut-off makes the closed-form
derivative piecewise (and the power law’s ∂/∂e_gap diverges as x → e_gap⁺ for
exponent < 1), so a numerical Jacobian is used — matching log_normal.
Source§fn jacobian_into(&self, x: &[f64], params: &[f64], out: &mut [f64])
fn jacobian_into(&self, x: &[f64], params: &[f64], out: &mut [f64])
Fill a pre-allocated slice with Jacobian values (one entry per parameter). Read more
Source§fn eval_slice_into(&self, xs: &[f64], params: &[f64], out: &mut [f64])
fn eval_slice_into(&self, xs: &[f64], params: &[f64], out: &mut [f64])
Batch evaluation of a 1-D model: fill
out[i] = eval([xs[i]], params). Read moreAuto Trait Implementations§
impl Freeze for Tauc
impl RefUnwindSafe for Tauc
impl Send for Tauc
impl Sync for Tauc
impl Unpin for Tauc
impl UnsafeUnpin for Tauc
impl UnwindSafe for Tauc
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more