hyperion.dust.BHDust

class hyperion.dust.BHDust(model)

This class should be used for dust properties that were computed using this dust calculation code which is a wrapper to the bhmie routine originally written by C.F. Bohren and D. Huffman and improved by B. Draine.

When using the bhmie code, you should set the output format to 2, which will create a number of files ending in .wav, .mu, .alb, etc. Then, instantiate this class with the name of the directory containing these output files along with the prefix used. For example, if you use directory/mydust as a prefix in bhmie, you can import this dust with:

>>> from hyperion.dust import BHDust
>>> d = BHDust('directory/mydust')

Method

set_sublimation_temperature(mode[, temperature]) Set the dust sublimation mode and temperature.
set_sublimation_specific_energy(mode[, …]) Set the dust sublimation mode and specific energy.
set_lte_emissivities([n_temp, temp_min, …]) Calculate the emissivities assuming LTE
plot(filename)
read(filename) Read in from a standard dust file
write(filename[, compression]) Write out to a standard dust file, including calculations of the mean opacities and optionally thermal emissivities.
temperature2specific_energy(temperature) Convert a temperature to its corresponding specific energy value.
specific_energy2temperature(specific_energy) Convert a specific energy value to its corresponding temperature.
chi_nu_temperature(temperature) Compute the mean opacity to extinction for a blackbody at a given temperature.
kappa_nu_temperature(temperature) Compute the mean opacity to absorption for a blackbody at a given temperature.
chi_nu_spectrum(nu, fnu) Compute the mean opacity to extinction for a given spectrum.
kappa_nu_spectrum(nu, fnu) Compute the mean opacity to absorption for a given spectrum.

Methods (detail)

set_sublimation_temperature(mode, temperature=0.0)

Set the dust sublimation mode and temperature.

Parameters:

mode : str

The dust sublimation mode, which can be:
  • ‘no’ - no sublimation
  • ‘fast’ - remove all dust in cells exceeding the
    sublimation temperature
  • ‘slow’ - reduce the dust in cells exceeding the
    sublimation temperature
  • ‘cap’ - any temperature exceeding the sublimation
    temperature is reset to the sublimation temperature.

temperature : float, optional

The dust sublimation temperature, in K

set_sublimation_specific_energy(mode, specific_energy=0.0)

Set the dust sublimation mode and specific energy.

Parameters:

mode : str

The dust sublimation mode, which can be:
  • ‘no’ - no sublimation
  • ‘fast’ - remove all dust in cells exceeding the
    sublimation specific energy
  • ‘slow’ - reduce the dust in cells exceeding the
    sublimation specific energy
  • ‘cap’ - any specific energy exceeding the sublimation
    specific energy is reset to the sublimation specific energy.

specific_energy : float, optional

The dust sublimation specific energy, in cgs

set_lte_emissivities(n_temp=1200, temp_min=0.1, temp_max=100000.0)

Calculate the emissivities assuming LTE

Parameters:

n_temp : int, optional

The number of temperatures to calculate the emissivities for

temp_min : float, optional

The minimum temperature to calculate the emissivities for

temp_max : float, optional

The maximum temperature to calculate the emissivities for

plot(filename)
read(filename)

Read in from a standard dust file

write(filename, compression=True)

Write out to a standard dust file, including calculations of the mean opacities and optionally thermal emissivities.

temperature2specific_energy(temperature)

Convert a temperature to its corresponding specific energy value.

Parameters:

temperature : float or array_like

The temperature to convert

Returns:

specific_energy : float or array_like

The specific energy corresponding to the input temperature

specific_energy2temperature(specific_energy)

Convert a specific energy value to its corresponding temperature.

Parameters:

specific_energy : float or array_like

The specific energy to convert

Returns:

temperature : float or array_like

The temperature corresponding to the input specific energy

chi_nu_temperature(temperature)

Compute the mean opacity to extinction for a blackbody at a given temperature.

Parameters:

temperature : float

The temperature of the blackbody to use

Returns:

chi_nu_mean : float

The mean opacity to extinction

kappa_nu_temperature(temperature)

Compute the mean opacity to absorption for a blackbody at a given temperature.

Parameters:

temperature : float

The temperature of the blackbody to use

Returns:

kappa_nu_mean : float

The mean opacity to absorption

chi_nu_spectrum(nu, fnu)

Compute the mean opacity to extinction for a given spectrum.

Parameters:

nu : array_like

The frequencies, in Hz

fnu : array_like

The monochromatic fluxes per unit frequency. Units are unimportant since proportionality constants are cancelled out in the computation.

Returns:

chi_nu_mean : float

The mean opacity to extinction

kappa_nu_spectrum(nu, fnu)

Compute the mean opacity to absorption for a given spectrum.

Parameters:

nu : array_like

The frequencies, in Hz

fnu : array_like

The monochromatic fluxes per unit frequency. Units are unimportant since proportionality constants are cancelled out in the computation.

Returns:

kappa_nu_mean : float

The mean opacity to absorption