A common thread in my work is that interpreting polarization observations needs careful theory and good numerics. Below are two open-source codes I have written to do exactly that.

PORTAL

POlarized Radiative Transfer Adapted to Lines — a 3D code for simulating the emergence of polarization in molecular and atomic (sub)millimetre line emission through a magnetic field of arbitrary morphology.

PORTAL can be used standalone in LTE, or as a polarization post-processor for regular (unpolarized) 3D radiative-transfer codes: you give it a model cube and a magnetic field, and it returns the Stokes Q, U, and V maps. It is designed for the kinds of objects where polarization actually carries the magnetic-field information you want — protoplanetary disks, circumstellar envelopes around evolved stars, and dense molecular clouds.

CHAMP

CHAracterizing Maser Polarization — a 1D radiative-transfer solver for the polarization of astrophysical masers.

CHAMP handles the regime that classical maser-polarization theory cannot: arbitrarily high saturation, high angular momentum, and the full hyperfine multiplicity of the maser transition. It also lets you turn on non-Zeeman polarizing mechanisms — anisotropic pumping, polarized seed radiation — so you can ask how much of an observed polarization signal is really tracing the magnetic field, and how much is something else.

Other repositories

A few smaller projects live on my GitHub profile — including zeeman_disk, a Zeeman ray-tracer specialised to protoplanetary disks.