Quasistatic¶
Backend lightsmith-quasistatic (method quasistatic, module lightsmith.backends.quasistatic). It
uses the dipole (Rayleigh–Gans) approximation for particles much smaller than the wavelength. auto
never picks it; request it with method="quasistatic".
Method¶
The polarisability is computed with the relative permittivity ε_p / n_m² (Bohren & Huffman, chapter 5):
- Sphere: α = 4πa³(ε − 1)/(ε + 2).
- Layered sphere: the recursive effective permittivity of Bohren & Huffman eq. 5.36.
- Spheroid: Gans theory with closed-form depolarisation factors.
From the polarisability:
- C_abs = k Im(e·α·e)
- C_sca = k⁴|α·e|²/(6π)
With any correction switched on, C_ext comes from the optical theorem instead. Orientation averages are the mean over the three principal axes. The far field is that of the induced dipole.
Options¶
options["quasistatic"] or options["lightsmith-quasistatic"].
| Option | Default | Meaning |
|---|---|---|
corrections |
"none" |
One of: "none" (static dipole); "radiative" (adds radiative damping); "mlwa" (modified long-wavelength approximation: dynamic depolarisation plus radiative damping); "mie_dipole" (the Mie dipole term exact to O(x⁴) plus damping, homogeneous spheres only) |
The solver runs on the CPU in float64. There are no gradients.
Validation¶
All tests are in tests/test_quasistatic.py. They cover 400–800 nm in water, with the native Mie solver
as the reference.
| Test | Reference | Tolerance |
|---|---|---|
test_dielectric_5nm_sphere_matches_mie (every correction mode) |
Mie | C_ext, C_sca, C_abs < 1 % |
test_metal_5nm_sphere_matches_mie: Drude sphere |
Mie | mie_dipole C_ext < 1 %; error ordering mie_dipole < mlwa < none |
test_coated_sphere_matches_mie: 3 nm core with a 2 nm shell |
Mie | C_ext < 1 % |
test_depolarization_factors |
numerical quadrature | 1e-12 |
test_far_field_integrates_to_csca |
∫ dC/dΩ = C_sca | 1e-12 |
test_energy_balance_with_radiative_damping: lossless spheroid, mlwa |
C_abs = 0 | < 1e-12 C_ext |
Limits¶
- One particle only.
- Shapes: spheres, layered spheres and spheroids; cylinders are refused.
mie_dipoleaccepts plain spheres only. - No near field and no substrate. The far field cannot be combined with
orientation_average. - Warns when the size parameter x = 2π n_m a_max / λ_min exceeds 0.3. At that size, use Mie or DDA instead.