Layered-sphere transfer matrices (electric and magnetic dipoles)

← Verification · Spheres · Point dipole
Reference
layered-sphere transfer matrices (electric and magnetic dipoles)
Kind
precision: the same mathematics in mpmath at 60–80 digits, written separately in src/pystratify/references.py and benchmarks/mp_reference.py: proves the numerics, not the formulation
Calculated
rates inside and outside shells
Agreement
2e-10 / 1e-10
An electric dipole inside and outside a nanoshell (50 nm silica core, 5 nm gold shell, in water), 614 nm: the rates against 60-digit transfer matrices Rates relative to the dipole in the layer it sits in (the silica core or the water), against transfer matrices evaluated in 60-digit arithmetic. The test also asserts 0.5–1 nm from the gold, with 1250–2400 orders.
2040608010012014010⁻¹11010²10³10⁴distance from the centre [nm]Γ / Γ₀
total, radial, PyStratify total, tangential, PyStratify total, radial, 60 digits total, tangential, 60 digits
Hover to read values.
  • largest relative difference (total and radiative): 1.27×10⁻¹²
  • PyStratify the lines, the reference the circles
A magnetic dipole outside a 100 nm silicon sphere (n = 3.7 + 0.005i), 800 nm: the rates against 60-digit transfer matrices A magnetic dipole couples to the sphere's magnetic Mie mode; the reference is the same transfer-matrix formulation in 60-digit arithmetic.
5010015020025030010⁻¹11010²distance from the surface [nm]Γ / Γ₀
total, radial, PyStratify total, tangential, PyStratify total, radial, 60 digits total, tangential, 60 digits
Hover to read values.
  • largest relative difference (total and radiative): 6.36×10⁻¹⁵
  • PyStratify the lines, the reference the circles

Run it yourself: sphere_emitter_checks.py · test_physics.py · figures.py · SPHERE_EMITTER_CHECKS.md on GitHub, PyStratify 97e52a9