Zheng Zhang
active

Anomalous Microwave Emission

Advanced Modeling of Spinning Dust Radiation

SpyDust

An improved and extended implementation for modeling spinning dust radiation

Comprehensive grain shape modeling • Updated physical processes • MPI parallelisation

PyPI arXiv GitHub

Overview

SpyDust is a Python package for modeling anomalous microwave emission (AME) from spinning dust grains in astrophysical environments. Building on the original IDL SPDUST code, SpyDust introduces comprehensive grain shape modeling, corrected physics for electric dipole radiation back-reaction and plasma drag, and new tools for spectral analysis and fitting.

The package is described in Zhang & Chluba (2024). The accompanying spectral signatures paper — covering global sensitivity analysis, moment expansion, and SED fitting — is published in MNRAS (2025).

SED comparison for different grain shape parameters β

Grain Shape Modeling

Cylindrical and ellipsoidal grain geometries via the shape parameter $\beta$, with full directional radiation fields and angular momentum transport.

Updated Physics

Corrected expressions for electric dipole radiation back-reaction, plasma drag dissipation, and infrared excitation/damping rates.

Spectral Analysis

Log-normal SED fitting, moment expansion perturbation method, full Stokes parameter calculations, and global sensitivity analysis tools.

MPI Parallelisation

Computations parallelised via mpi4py for efficient evaluation across grain size distributions and ISM environments.


Computational Pipeline

SpyDust computes the spinning dust emissivity through a modular physics pipeline. For each grain size in the distribution, the code solves for the charge state, excitation/damping rates, and the resulting angular momentum distribution $f(\omega)$, before integrating to obtain the SED.

1
Environment & Grain Properties
ISM parameters ($n_\mathrm{H}$, $T$, $\chi$, $x_\mathrm{h}$, $x_\mathrm{C}$, $y$, $\gamma$, $\beta$, $\mu$). Grain geometry, moments of inertia, and atom counts ($N_\mathrm{C}$, $N_\mathrm{H}$) computed via Grain.py.
2
Charge Distribution
Equilibrium charge state from photoemission/collision balance (charge_dist.py), following Weingartner & Draine (2001b) and Draine & Sutin (1987).
3
Excitation & Damping Rates
IR emission (infrared.py), neutral/ion collisions (collisions.py), plasma drag (plasmadrag.py), and H2 formation contribute to angular momentum exchange.
4
Angular Momentum Distribution
The rotation rate distribution $f(\omega)$ is solved from the Fokker–Planck equation in AngMomDist.py, accounting for all excitation and damping.
5
Emissivity Spectrum
The SED is integrated over grain sizes and shapes in SED.py, yielding the spinning dust emissivity $j_\nu$ as a function of frequency.

Grain Shape Effects

A key innovation in SpyDust is the treatment of non-spherical grain shapes. The shape parameter $\beta$ controls the aspect ratio: small grains ($a < a_2 = 6 \times 10^{-8}$ cm) are modeled as cylinders, while larger grains are ellipsoidal.

Ellipsoidal grain geometry and angular momentum basis Cylindrical grain geometry for small dust particles

Validation: SpyDust vs. SPDUST

SpyDust vs. original SPDUST comparison across ISM environments

Key corrections in SpyDust:

  • Updated electric dipole radiation back-reaction damping rate
  • Corrected plasma drag formulation for charged grains
  • Extended IR excitation with proper vibrational mode treatment
  • Full non-spherical grain geometry (cylinders + ellipsoids)

These corrections matter most for small, highly charged grains in strong radiation fields.


Spectral Features & Sensitivity Analysis

The spinning dust SED is well-described by a log-normal model characterised by its peak frequency $\nu_\mathrm{peak}$ and spectral width $\sigma$:

\[j_\nu \;\propto\; \exp\!\left[-\,\frac{1}{2}\left(\frac{\ln\nu - \ln\nu_\mathrm{peak}}{\sigma}\right)^{\!2}\right]\]

Using global sensitivity analysis (GSA) and the moment expansion method, we quantify how each environment and grain parameter influences these spectral features — and identify fundamental degeneracies.

Moment expansion analysis: derivatives of spectral features SED variations across grain size and shape parameters

Large ensembles of spinning dust models generated across realistic ISM conditions. Comparing these ensembles with observed AME sources reveals which parameter combinations are consistent with the data and which degeneracies remain.

Observed AME sources vs. model ensemble predictions

Getting Started

Install from PyPI pip install SpyDust --no-deps
Or install from source git clone https://github.com/zzhang0123/SpyDust.git
cd SpyDust
pip install -e . --no-deps

Dependencies: numpy (<2.4), scipy, mpi4py (required); pandas (optional, for free-free emission).


Key Takeaways

  • SpyDust is an improved Python reimplementation of the IDL SPDUST code for modeling anomalous microwave emission from spinning dust grains.
  • It introduces comprehensive grain shape modeling (cylindrical + ellipsoidal), corrected physics, and MPI parallelisation.
  • New tools for spectral feature analysis — log-normal SED fitting, moment expansion derivatives, and global sensitivity analysis — reveal parameter degeneracies and guide observational strategies.
  • The package is open source, published on PyPI, and actively maintained.

Publications