PyStratify against MNPBEM

← Verification · Spheres · Plane wave
Reference
MNPBEM (boundary elements; MNPBEM17 from the CPC program library, run under GNU Octave)
Kind
code: another group's code
Calculated
C_ext, C_sca of a 40 nm sphere (ε = −10 + i) in vacuum and in water, and of a 10 nm-shell nanoshell, on refined meshes
Agreement
converges toward PyStratify; finest mesh ≤ 5% and closer than the coarsest; observed 0.45–4.4%
A 40 nm sphere of ε = −10 + i in vacuum: cross sections against MNPBEM's boundary elements MNPBEM (Hohenester & Trügler) discretizes the surface into triangles and solves the retarded boundary integral equations; a constant permittivity, so both codes see the same ε at every wavelength. Percent-level by design: the test checks the difference shrinks as the mesh is refined (0.45–4.4% at 2044 faces).
400450500550600650700750800050100150λ [nm]C [nm²]
Cext, PyStratify Csca, PyStratify Cext, MNPBEM (2044 faces) Csca, MNPBEM (2044 faces)
Hover to read values.
  • largest relative difference (the mesh's error): 0.0423649
  • PyStratify the lines, the reference the circles

Run it yourself: mnpbem_spheres.py · mnpbem_octave.py · test_mnpbem_spheres.py · figures.py · MNPBEM_SPHERES.md on GitHub, PyStratify 97e52a9