Examples

These pages are Pluto.jl notebooks rendered to HTML (with plots). Each one is a self-contained walkthrough of one capability; the live, editable sources live in the examples/ directory of the repository.

The notebooks

  • Shapes quick-start gallery — define a spheroid, cylinder, Chebyshev particle, and N-fold prism; compute each T-matrix and its Qsca/Qext/g/ω, with notes on which solver to use.
  • Solver landscape & convergence — the two-layer API (EBCM, IITM, Iterative, stable) on a high-aspect spheroid, showing classic EBCM diverging with nₘₐₓ while the stabilized path holds.
  • Angular scattering & polarization — the orientation-averaged scattering (Mueller) matrix vs angle (phase function F₁₁, linear polarization -F₁₂/F₁₁, …), plus fixed-geometry amplitude and phase matrices.
  • Orientation averaging — Mishchenko's analytic RandomOrientationTransitionMatrix vs the numerical orientation_average, and the numerical average converging to it.
  • Spectral sensitivity — fast wavelength / refractive-index sensitivities via the Sh-matrix moment-separation backend: prepare_sh runs the geometry quadrature once, then ForwardDiff over the cheap reconstruction gives exact ∂Cₛ𝚌ₐ/∂λ and ∂Cₛ𝚌ₐ/∂mᵣ across a spectrum.
  • Rain radar observables — a self-contained radiative-transfer prototype: spheroidal IITM T-matrices, a rain-drop axis-ratio model, water/ice refractive-index fits, and a drop-size distribution feeding dual-pol radar moments and brightness-temperature integrals.
  • Near-field maps from a T-matrix — reconstruct the external electromagnetic field (incident + scattered) from any T-matrix; a field-enhancement $|E|/|E_0|$ map and axial cut around a Mie sphere, with the Rayleigh-hypothesis region-of-validity note.

Running them locally

The notebooks use the examples/ environment, which develops the parent package:

julia> import Pkg; Pkg.activate("examples"); Pkg.instantiate()  # first time only
julia> using Pluto; Pluto.run()

Then open a notebook from the Pluto start page. Each notebook's first cell activates this environment and develops TransitionMatrices from the repository root, so it works from a fresh checkout.