Scalar model: coefficients, energy, brute-force sum

← Verification · Cylinders · Focused beam
Reference
scalar model: coefficients, energy, brute-force sum
Kind
method: an independent formulation inside this repo (a scattering matrix, a plane-wave superposition, a quadrature): proves the formulation
Calculated
detected power
Agreement
—
The scalar model: a cylinder of radius 1.1 µm, n = 1.45 + 0.06i, row s_y = 0.4, 3 µm: coefficients against the scalar boundary equations The scalar model treats a row of the pupil as a scalar wave U = J_m + t_m H_m outside a cylinder of effective indices √(n² − s_y²), with U and ∂U/∂ρ continuous; the coefficients from PyStratify's cylinder solver against those two conditions solved directly in SciPy's Bessel functions.
-10-5051010⁻¹⁸10⁻¹⁵10⁻¹²10⁻⁹10⁻⁶10⁻³1order m|t_m|
|tm|, PyStratify |tm|, scalar boundary equations
Hover to read values.
  • largest relative difference: 3.96×10⁻¹⁶
  • PyStratify the lines, the reference the circles
The scalar model, the coated cylinder (0.7/1.2 µm) under NA 0.6/0.2, 3 µm: each pupil row against a direct superposition Each row's scalar plane waves, with the aplanatic pupil amplitude and the focus at (0.3, 0, 0.2) µm, scattered one by one with the effective-index coefficients and superposed on observation angles; the powers integrated directly. The test also checks that a lossless cylinder absorbs nothing and that the scalar model has no polarization split.
0.10.20.30.40.500.511.52pupil row s_ypower per row
extinction, PyStratify scattering, PyStratify extinction, direct superposition scattering, direct superposition
Hover to read values.
  • largest relative difference: 3.12×10⁻¹⁵
  • PyStratify the lines, the reference the circles

Run it yourself: focused_checks.py · test_focused.py · figures.py · FOCUSED_CHECKS.md on GitHub, PyStratify 97e52a9