Skip to content

PyStratify 0.11.0

Latest

Choose a tag to compare

@multilayerapp multilayerapp released this 16 Oct 20:25
· 11 commits to main since this release

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 (also bruggeman_epsilon on bare permittivities) and Maxwell Garnett mixtures, tables (Table.from_refractiveindex reads a refractiveindex.info page), and kramers_kronig_real.
  • pystratify.ellipsometry: Ψ, Δ and N, C, S of a film stack in the instrument (Nebraska) convention that Woollam, SENTECH and pyElli report (Δ = 180° − Δ of planar.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; and fit_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.py fits 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.