Repository navigation
Thin-film ellipsometry: dispersion models, measurement files and fits. Two new modules; nothing already computed changes.
pystratify.dispersion: parametric dielectric functions, wavelengths in nm and oscillator parameters in eV, composed with+: Cauchy (with an Urbach tail), Sellmeier, poles, Lorentz, Gaussian, Tauc-Lorentz, Cody-Lorentz (with an Urbach tail; ε₁ by a numerical Kramers–Kronig transform), Drude in energy and resistivity form, Bruggeman (alsobruggeman_epsilonon bare permittivities) and Maxwell Garnett mixtures, tables (Table.from_refractiveindexreads a refractiveindex.info page), andkramers_kronig_real.pystratify.ellipsometry: Ψ, Δ and N, C, S of a film stack in the instrument (Nebraska) convention that Woollam, SENTECH and pyElli report (Δ = 180° − Δ ofplanar.ellips); incoherent backside reflection from a finite substrate and the depolarisation it causes; readers for J.A. Woollam (CompleteEASE, WVASE) and SENTECH SpectraRay files;fit, a bounded least-squares fit reporting the instruments' MSE, 90 % confidence limits and parameter correlations, with a grid search for the start; andfit_nk, point-by-point optical constants.- Checked against pyElli (
benchmarks/DISPERSION_CODES.md,benchmarks/ELLIPSOMETRY_CODES.md): every dispersion model to 5e-15; Ψ, Δ of four dispersive stacks to 4e-12° with both of its solvers; both file readers exactly; and a fit of a real TiO₂ measurement where the parameters agree with pyElli + lmfit to 4e-7 and the standard errors and MSE to all printed digits. (pyElli's two Drude models return ε₁ with the wrong sign; its Cody-Lorentz ε₁ is a coarse 1000-point sum.) examples/ellipsometry_fit.pyfits two real measurements published with pyElli: a Woollam RC2 wafer (native oxide 2.25 nm) and a SENTECH TiO₂ film.
The oscillator forms are multilayer.app's, parameter for parameter; the site's API now evaluates its oscillator models with this module.