PyStratify against pyElli: 2×2 and 4×4 solvers

← Verification · Thin films · Plane wave
Reference
pyElli, 2×2 and 4×4 solvers
Kind
code: another group's code
Calculated
R, Ψ, Δ on nine stacks (AR pair, 10-pair Bragg mirror, thin and opaque Au, a 20 µm absorber, beyond critical, frustrated TIR) × 4 angles × 3 wavelengths
Agreement
1e-12 (R), 1e-10° (Ψ, Δ); observed ≤ 5e-15, ≤ 6e-13°
A ten-pair Bragg mirror (n = 2.35 / 1.46) on glass at 30°: R_s against pyElli's 2×2 and 4×4 solvers pyElli (an ellipsometry package) solves layered stacks with Berreman's 4×4 matrices and with 2×2 ones; the two solvers are drawn at alternate points. The test runs nine stacks (an AR pair, this mirror, thin and opaque gold, a 20 µm absorber, beyond critical, frustrated TIR) at four angles and three wavelengths for R, Ψ and Δ.
45050055060065070075080085000.20.40.60.81λ [nm]Rs
Rs, PyStratify Rs, pyElli 2×2 Rs, pyElli 4×4
Hover to read values.
  • largest |difference|: 5.77×10⁻¹⁵
  • PyStratify the lines, the reference the circles
20 nm of gold (n = 0.27 + 2.93i) on glass at 633 nm: Ψ and Δ against pyElli's 4×4 solver pyElli reports Δ with the opposite sign convention for r_p, so PyStratify's is drawn as 180° − Δ, wrapped to ±180°, as the test compares it (to 1e-10°).
102030405060708020406080100120140160180angle of incidence [°]angle [°]
Ψ, PyStratify Δ, PyStratify (pyElli's convention) Ψ, pyElli 4×4 Δ, pyElli 4×4
Hover to read values.
  • largest difference [°]: 1.14×10⁻¹³
  • PyStratify the lines, the reference the circles

Run it yourself: test_planar_codes.py · planar_codes.py · figures.py · PLANAR_CODES.md on GitHub, PyStratify 97e52a9