synthesizer.emission_models.dust.emission

A module defining emission generation classes.

This module provides classes for generating spectra from specific parametrisations. Each of these will return a normalised spectrum.

Possible classes include:
  • Blackbody: A simple blackbody spectrum.

  • Greybody: A greybody spectrum.

  • Casey12: A dust emission spectrum using the Casey (2012) model.

  • IR_templates: A class to generates dust emission spectra using

    the Draine and Li (2007) model.

Example usage:

blackbody = Blackbody(temperature=20 * K) greybody = Greybody(temperature=20 * K, emissivity=1.5) casey12 = Casey12(temperature=20 * K, emissivity=1.5, alpha=2.0) ir_templates = IR_templates(grid, mdust=1e6 * Msun) ir_templates.dl07() ir_templates.get_spectra(lam, intrinsic_sed=sed1, attenuated_sed=sed2)

Functions

synthesizer.emission_models.dust.emission.solve_umin(umin, umax, u_avg, gamma)[source]

Solve for Umin in the Draine and Li model.

For fixed alpha=2.0, equation to solve to <U> in Draine and Li

Return type:

float

synthesizer.emission_models.dust.emission.u_mean(umin, umax, gamma)[source]

Calculate the mean radiation field heating the dust.

For fixed alpha=2.0, get <U> for Draine and Li model

Return type:

float

synthesizer.emission_models.dust.emission.u_mean_magdis12(mdust, ldust, p0)[source]

Calculate the mean radiation field heating the dust.

P0 value obtained from stacking analysis in Magdis+12 For alpha=2.0 https://ui.adsabs.harvard.edu/abs/2012ApJ…760….6M/abstract

Return type:

float

Classes

class synthesizer.emission_models.dust.emission.Blackbody(temperature, cmb_heating=False, redshift=0)[source]

A class to generate a blackbody emission spectrum.

temperature

The temperature of the dust.

Type:

float

cmb_heating

Option for adding heating by CMB.

Type:

bool

redshift

Redshift.

Type:

float

class synthesizer.emission_models.dust.emission.Casey12(temperature, emissivity, alpha, N_bb=1.0, lam_0=unyt_quantity(200., 'μm'), cmb_heating=False, redshift=0)[source]

A class to generate a dust emission spectrum using the Casey (2012) model.

https://ui.adsabs.harvard.edu/abs/2012MNRAS.425.3094C/abstract

emissivity

The emissivity of the dust (dimensionless).

Type:

float

alpha

The power-law slope (dimensionless) [good value = 2.0].

Type:

float

n_bb

Normalisation of the blackbody component [default 1.0].

Type:

float

lam_0

Wavelength where the dust optical depth is unity.

Type:

float

lam_c

The power law turnover wavelength.

Type:

float

n_pl

The power law normalisation.

Type:

float

cmb_heating

Option for adding heating by CMB

Type:

bool

redshift

Redshift of the galaxy

Type:

float

class synthesizer.emission_models.dust.emission.EmissionBase(temperature=None, cmb_factor=1)[source]

Dust emission base class for holding common methods.

temperature

The temperature of the dust.

Type:

float

cmb_factor

The multiplicative factor to account for CMB heating at high-redshift

Type:

float

apply_cmb_heating(emissivity, redshift)[source]

Return the factor by which the CMB boosts the infrared luminosity.

(See implementation in da Cunha+2013)

Parameters:
  • emissivity (float) – The emissivity index in the FIR (no unit)

  • redshift (float) – The redshift of the galaxy

Return type:

None

get_spectra(lam, intrinsic_sed=None, attenuated_sed=None)[source]

Return the normalised lnu for the provided wavelength grid.

Parameters:
  • lam (float/array-like, float) – An array of wavelengths (expected in AA, global unit)

  • intrinsic_sed (Sed) – The intrinsic SED to scale with dust.

  • attenuated_sed (Sed) – The attenuated SED to scale with dust.

class synthesizer.emission_models.dust.emission.Greybody(temperature, emissivity, cmb_heating=False, redshift=0)[source]

A class to generate a greybody emission spectrum.

emissivity

The emissivity of the dust (dimensionless).

Type:

float

cmb_heating

Option for adding heating by CMB

Type:

bool

redshift

Redshift of the galaxy

Type:

float

class synthesizer.emission_models.dust.emission.IR_templates(grid, mdust, dgr=0.01, MH=None, ldust=None, template='DL07', gamma=None, qpah=0.025, umin=None, alpha=2.0, p0=125.0, verbose=True)[source]

A class to generate a dust emission spectrum.

Can use either: (i) Draine and Li model (2007) – DL07 - https://ui.adsabs.harvard.edu/abs/2007ApJ…657..810D/abstract Umax (Maximum radiation field heating the dust) is chosen as 1e7. Has less effect where the maximum is on the spectrum (ii) Astrodust + PAH model (2023) – Not implemented Astrodust - https://ui.adsabs.harvard.edu/abs/2023ApJ…948…55H/abstract

grid

The dust grid to use

Type:

Grid object

mdust

The mass of dust in the galaxy (Msun).

Type:

float

dgr

The dust-to-gas ratio of the galaxy

Type:

float

MH

The mass in hydrogen of the galaxy

Type:

float

template

The IR template model to be used (Currently only Draine and Li 2007 model implemented)

Type:

string

ldust

The dust luminosity of the galaxy (integrated from 0 to inf), obtained using energy balance here.

Type:

float

gamma

Fraction of the dust mass that is associated with the power-law part of the starlight intensity distribution.

Type:

float

qpah

Fraction of dust mass in the form of PAHs [good value=2.5%]

Type:

float

umin

Radiation field heating majority of the dust.

Type:

float

alpha

The power law normalisation [good value = 2.].

Type:

float

p0

Power absorbed per unit dust mass in a radiation field with U = 1

Type:

float

dl07()[source]

Draine and Li models.

For simplicity, only MW models are implemented (SMC model has only qpah=0.1%). These are the extended grids of DL07.

Return type:

None

get_spectra(lam, intrinsic_sed=None, attenuated_sed=None, dust_components=False, **kwargs)[source]

Return the lnu for the provided wavelength grid.

Parameters:
  • lam (float/array-like, float) – An array of wavelengths.

  • intrinsic_sed (Sed) – The intrinsic SED to scale with dust.

  • attenuated_sed (Sed) – The attenuated SED to scale with dust.

  • dust_components (boolean) – If True, returns the constituent dust components