A code to calculate Spinning Dust spectra

SpDust is an IDL program that evaluates the spinning dust emissivity for user-provided environmental conditions.
It implements the theoretical formalism presented in the two companion papers:
  • Ali-Haïmoud Y., Hirata C. & Dickinson C., 2009, MNRAS, 395, 1055 (arXiv:0812.2904)
  • Silsbee K., Ali-Haïmoud Y. & Hirata C., 2011, MNRAS, 411, 2750 (arXiv:1003.4732)
    Note that this code is provided "as is" and no guarantees are given regarding its accuracy.
    Please cite the companion papers when using this code as part of any published work.

    Please email any concerns or comments to yah2 at nyu dot edu.

    Download the latest version of the code here: spdust.2.01 (May 2012 version, only differs from the March 2010 version by a small bug fix).
    This version accounts for the rotation of disc-like grains around a non-principal axis (Silsbee et al., 2010). The case of grains rotating around their axis of greatest inertia is recovered with the keyword /case1 (see the readme file for more details).
    The first released version is still available here: spdust.1 (December 2008). Be aware that it contains a couple of minor bugs and errors.

    Readme file (pdf format)

    Example input parameters
    Example output spectrum

    Example IDL routine to run SpDust on a grid of number densities: nh_grid.pro, and a plot of the resulting spectra.

    Quick start (check the readme for more details)

    1- Before running the code:
    Change the path for the folder Data_Files in the file compile_spdust.pro.

    2- Open an IDL session from the SPDUST.2/SpDust_IDL_routines directory

    3- Compile all the IDL routines by entering at the command line:
    IDL> @compile_spdust
    This needs to be done only once each time you start a new session.

    4- Define your input parameters in a structure. Example:
    IDL> input_params = {nh: 30d, T: 1d2, chi: 1d, xh: 1d-3, xc: 3d-4, y: 0d, gamma: 0d, dipole: 9.3d, line: 7}
    (for a possible use of an input file, refer to the readme)

    5- SpDust takes these input parameters as a first argument and the full path of your desired output file as a second argument. Example:
    IDL> SPDUST, input_params, '~/emiss.out'

    The case where disc-like grains are assumed to rotate around their axis of greatest inertia (as in the first release) can be recovered with the keyword /case1. Example:
    IDL> SPDUST, input_params, '~/emiss.out', /case1
    For optional arguments (frequency range, etc...), check the readme.

    Yacine Ali-Haïmoud
    yah2 at nyu dot edu
    Last revised: May 20th, 2012