Rows against plane-wave sums; whole beam against fixed quadrature

← Verification · Cylinders · Focused beam
Reference
rows against plane-wave sums; whole beam against fixed quadrature
Kind
method: an independent formulation inside this repo (a scattering matrix, a plane-wave superposition, a quadrature): proves the formulation
Calculated
detected power
Agreement
1e-9
A coated cylinder (0.7/1.2 µm) under a focused beam (NA 0.6/0.2, collection 0.8/0.1, x polarized), 3 µm: one pupil row at a time against plane-wave sums A cylinder conserves the beam's direction along its axis, so the pupil splits into rows of fixed s_y, each an oblique cylinder problem. PyStratify sums a row in closed form over Fourier orders; the reference solves every plane wave of the row (60 nodes per interval), adds their far fields on observation angles and integrates the powers directly. Focus at (0.4, 0, 0.3) µm; the y polarization and the mirror rows −s_y are checked too.
0.10.20.30.40.500.511.5pupil row s_ypower per row
extinction, PyStratify scattering, PyStratify detected, PyStratify extinction, plane waves summed scattering, plane waves summed detected, plane waves summed
Hover to read values.
  • largest relative difference: 3.47×10⁻¹⁵
  • PyStratify the lines, the reference the circles
The coated cylinder (0.7/1.2 µm) under a focused beam (NA 0.6/0.2, collection 0.8), x polarized: the whole beam against a fixed quadrature The whole beam, x polarized (across the axis): PyStratify integrates its rows over s_y adaptively to 1e-9; the reference sums the same rows with a fixed 40-node rule on each side of the obscuration. The incident power is 1.
2.533.544.555.5600.511.5λ [µm]power / incident
extinction, PyStratify (adaptive) scattering, PyStratify (adaptive) detected, PyStratify (adaptive) extinction, fixed 40-node quadrature scattering, fixed 40-node quadrature detected, fixed 40-node quadrature
Hover to read values.
  • largest relative difference: 9.4×10⁻¹⁶
  • PyStratify the lines, the reference the circles
The coated cylinder (0.7/1.2 µm) under a focused beam (NA 0.6/0.2, collection 0.8), y polarized: the whole beam against a fixed quadrature The whole beam, y polarized (along the axis): PyStratify integrates its rows over s_y adaptively to 1e-9; the reference sums the same rows with a fixed 40-node rule on each side of the obscuration. The incident power is 1.
2.533.544.555.560.511.52λ [µm]power / incident
extinction, PyStratify (adaptive) scattering, PyStratify (adaptive) detected, PyStratify (adaptive) extinction, fixed 40-node quadrature scattering, fixed 40-node quadrature detected, fixed 40-node quadrature
Hover to read values.
  • largest relative difference: 9.79×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