continuum

class ChiantiPy.core.continuum(ion_string, temperature, abundance=None, em=None)[source] [edit on github]

Bases: object

The top level class for continuum calculations. Includes methods for the calculation of the free-free and free-bound continua.

Parameters:

ionStr : str

CHIANTI notation for the given ion, e.g. ‘fe_12’ that corresponds to the Fe XII ion.

temperature : array-like

In units of Kelvin

abundance : float or str, optional

Elemental abundance relative to Hydrogen or name of CHIANTI abundance file, without the ‘.abund’ suffix, e.g. ‘sun_photospheric_1998_grevesse’.

em : array-like, optional

Line-of-sight emission measure (\(\int\mathrm{d}l\,n_en_H\)), in units of \(\mathrm{cm}^{-5}\), or the volumetric emission measure (\(\int\mathrm{d}V\,n_en_H\)) in units of \(\mathrm{cm}^{-3}\).

Notes

The methods for calculating the free-free and free-bound emission and losses return their result to an attribute. See the respective docstrings for more information.

Examples

>>> import ChiantiPy.core as ch
>>> import numpy as np
>>> temperature = np.logspace(4,9,20)
>>> cont = ch.continuum('fe_15',temperature)
>>> wavelength = np.arange(1,1000,10)
>>> cont.freeFree(wavelength)
>>> cont.freeBound(wavelength, include_abundance=True, include_ioneq=False)
>>> cont.calculate_free_free_loss()
>>> cont.calculate_free_bound_loss()

Methods Summary

calculate_free_bound_loss(**kwargs) Calculate the free-bound energy loss rate of an ion.
calculate_free_free_loss(**kwargs) Calculate the free-free energy loss rate of an ion.
freeBound(wavelength[, include_abundance, …]) Calculate the free-bound emission of an ion.
freeBoundLoss(**kwargs) Calculate the free-bound energy loss rate of an ion.
freeFree(wavelength[, include_abundance, …]) Calculates the free-free emission for a single ion.
freeFreeLoss(**kwargs) Calculate the free-free energy loss rate of an ion.
ioneqOne() Provide the ionization equilibrium for the selected ion as a function of temperature.
ioneq_one(stage, **kwargs) Calculate the equilibrium fractional ionization of the ion as a function of temperature.
itoh_gaunt_factor(wavelength) Calculates the free-free gaunt factors of [R15].
karzas_cross_section(photon_energy, …) Calculate the photoionization cross-sections using the Gaunt factors of [R16].
klgfbInterp(wvl, n, l) A Python version of the CHIANTI IDL procedure karzas_xs.
mewe_gaunt_factor(**kwargs) Calculate the Gaunt factor according to [R18] for a single ion \(Z_z\).
sutherland_gaunt_factor(wavelength) Calculates the free-free gaunt factor calculations of [R19].
verner_cross_section(photon_energy) Calculates the photoionization cross-section using data from [R20] for transitions to the ground state.

Methods Documentation

calculate_free_bound_loss(**kwargs)[source] [edit on github]

Calculate the free-bound energy loss rate of an ion. The result is returned to the free_bound_loss attribute.

The free-bound loss rate can be calculated by integrating the free-bound emission over the wavelength. This is difficult using the expression in calculate_free_bound_emission so we instead use the approach of [R21] and [R22]. Eq. 1a of [R22] can be integrated over wavelength to get the free-bound loss rate,

\[\frac{dW}{dtdV} = C_{ff}\frac{k}{hc}T^{1/2}G_{fb},\]

in units of erg \(\mathrm{cm}^3\,\mathrm{s}^{-1}\) where \(G_{fb}\) is the free-bound Gaunt factor as given by Eq. 15 of [R22] (see mewe_gaunt_factor for more details) and \(C_{ff}\) is the numerical constant as given in Eq. 4 of [R21] and can be written in terms of the fine structure constant \(\alpha\),

\[C_{ff}\frac{k}{hc} = \frac{8}{3}\left(\frac{\pi}{6}\right)^{1/2}\frac{h^2\alpha^3}{\pi^2}\frac{k_B}{m_e^{3/2}} \approx 1.43\times10^{-27}\]

References

[R21](1, 2, 3) Gronenschild, E.H.B.M. and Mewe, R., 1978, A&AS, 32, 283
[R22](1, 2, 3, 4) Mewe, R. et al., 1986, A&AS, 65, 511
calculate_free_free_loss(**kwargs)[source] [edit on github]

Calculate the free-free energy loss rate of an ion. The result is returned to the free_free_loss attribute.

The free-free radiative loss rate is given by Eq. 5.15a of [R23]. Writing the numerical constant in terms of the fine structure constant \(\alpha\),

\[\frac{dW}{dtdV} = \frac{4\alpha^3h^2}{3\pi^2m_e}\left(\frac{2\pi k_B}{3m_e}\right)^{1/2}Z^2T^{1/2}\bar{g}_B\]

where where \(Z\) is the nuclear charge, \(T\) is the electron temperature, and \(\bar{g}_{B}\) is the wavelength-averaged and velocity-averaged Gaunt factor. The Gaunt factor is calculated using the methods of [R24]. Note that this expression for the loss rate is just the integral over wavelength of Eq. 5.14a of [R23], the free-free emission, and is expressed in units of erg \(\mathrm{cm}^3\,\mathrm{s}^{-1}\).

References

[R23](1, 2, 3) Rybicki and Lightman, 1979, Radiative Processes in Astrophysics, (Wiley-VCH)
[R24](1, 2) Karzas and Latter, 1961, ApJSS, 6, 167
freeBound(wavelength, include_abundance=True, include_ioneq=True, use_verner=True, **kwargs)[source] [edit on github]

Calculate the free-bound emission of an ion. The result is returned as a 2D array to the free_bound_emission attribute.

The total free-bound continuum emissivity is given by,

\[\frac{dW}{dtdVd\lambda} = \frac{1}{4\pi}\frac{2}{hk_Bc^3m_e\sqrt{2\pi k_Bm_e}}\frac{E^5}{T^{3/2}}\sum_i\frac{\omega_i}{\omega_0}\sigma_i^{bf}\exp\left(-\frac{E - I_i}{k_BT}\right)\]

where \(E=hc/\lambda\) is the photon energy, \(\omega_i\) and \(\omega_0\) are the statistical weights of the \(i^{\mathrm{th}}\) level of the recombined ion and the ground level of the recombing ion, respectively, \(\sigma_i^{bf}\) is the photoionization cross-section, and \(I_i\) is the ionization potential of level \(i\). This expression comes from Eq. 12 of [R27]. For more information about the free-bound continuum calculation, see Peter Young’s notes on free-bound continuum.

The photoionization cross-sections are calculated using the methods of [R26] for the transitions to the ground state and [R25] for all other transitions. See verner_cross_section and karzas_cross_section for more details.

The free-bound emission is in units of erg \(\mathrm{cm}^3\mathrm{s}^{-1}\mathrm{\mathring{A}}^{-1}\mathrm{str}^{-1}\). If the emission measure has been set, the units will be multiplied by \(\mathrm{cm}^{-5}\) or \(\mathrm{cm}^{-3}\), depending on whether it is the line-of-sight or volumetric emission measure, respectively.

Parameters:

wavelength : array-like

In units of angstroms

include_abundance : bool, optional

If True, include the ion abundance in the final output.

include_ioneq : bool, optional

If True, include the ionization equilibrium in the final output

use_verner : bool, optional

If True, cross-sections of ground-state transitions using [R26], i.e. verner_cross_section

Raises:

ValueError

If no .fblvl file is available for this ion

References

[R25](1, 2) Karzas and Latter, 1961, ApJSS, 6, 167
[R26](1, 2, 3) Verner & Yakovlev, 1995, A&AS, 109, 125
[R27](1, 2) Young et al., 2003, ApJSS, 144, 135
freeBoundLoss(**kwargs)[source] [edit on github]

Calculate the free-bound energy loss rate of an ion. The result is returned to the free_bound_loss attribute.

The free-bound loss rate can be calculated by integrating the free-bound emission over the wavelength. This is difficult using the expression in calculate_free_bound_emission so we instead use the approach of [R28] and [R29]. Eq. 1a of [R29] can be integrated over wavelength to get the free-bound loss rate,

\[\frac{dW}{dtdV} = C_{ff}\frac{k}{hc}T^{1/2}G_{fb},\]

in units of erg \(\mathrm{cm}^3\,\mathrm{s}^{-1}\) where \(G_{fb}\) is the free-bound Gaunt factor as given by Eq. 15 of [R29] (see mewe_gaunt_factor for more details) and \(C_{ff}\) is the numerical constant as given in Eq. 4 of [R28] and can be written in terms of the fine structure constant \(\alpha\),

\[C_{ff}\frac{k}{hc} = \frac{8}{3}\left(\frac{\pi}{6}\right)^{1/2}\frac{h^2\alpha^3}{\pi^2}\frac{k_B}{m_e^{3/2}} \approx 1.43\times10^{-27}\]

References

[R28](1, 2, 3) Gronenschild, E.H.B.M. and Mewe, R., 1978, A&AS, 32, 283
[R29](1, 2, 3, 4) Mewe, R. et al., 1986, A&AS, 65, 511
freeFree(wavelength, include_abundance=True, include_ioneq=True, **kwargs)[source] [edit on github]

Calculates the free-free emission for a single ion. The result is returned as a dict to the FreeFree attribute. The dict has the keywords intensity, wvl, temperature, em.

The free-free emission for the given ion is calculated according Eq. 5.14a of [R30], substituting \(\nu=c/\lambda\), dividing by the solid angle, and writing the numerical constant in terms of the fine structure constant \(\alpha\),

\[\frac{dW}{dtdVd\lambda} = \frac{c}{3m_e}\left(\frac{\alpha h}{\pi}\right)^3\left(\frac{2\pi}{3m_ek_B}\right)^{1/2}\frac{Z^2}{\lambda^2T^{1/2}}\exp{\left(-\frac{hc}{\lambda k_BT}\right)}\bar{g}_{ff},\]

where \(Z\) is the nuclear charge, \(T\) is the electron temperature in K, and \(\bar{g}_{ff}\) is the velocity-averaged Gaunt factor. The Gaunt factor is estimated using the methods of [R31] and [R32], depending on the temperature and energy regime. See itoh_gaunt_factor and sutherland_gaunt_factor for more details.

The free-free emission is in units of erg \(\mathrm{cm}^3\mathrm{s}^{-1}\mathrm{\mathring{A}}^{-1}\mathrm{str}^{-1}\). If the emission measure has been set, the units will be multiplied by \(\mathrm{cm}^{-5}\) or \(\mathrm{cm}^{-3}\), depending on whether it is the line-of-sight or volumetric emission measure, respectively.

Parameters:

wavelength : array-like

In units of angstroms

include_abundance : bool, optional

If True, include the ion abundance in the final output.

include_ioneq : bool, optional

If True, include the ionization equilibrium in the final output

References

[R30](1, 2) Rybicki and Lightman, 1979, Radiative Processes in Astrophysics, (Wiley-VCH)
[R31](1, 2) Itoh, N. et al., 2000, ApJS, 128, 125
[R32](1, 2) Sutherland, R. S., 1998, MNRAS, 300, 321
freeFreeLoss(**kwargs)[source] [edit on github]

Calculate the free-free energy loss rate of an ion. The result is returned to the free_free_loss attribute.

The free-free radiative loss rate is given by Eq. 5.15a of [R33]. Writing the numerical constant in terms of the fine structure constant \(\alpha\),

\[\frac{dW}{dtdV} = \frac{4\alpha^3h^2}{3\pi^2m_e}\left(\frac{2\pi k_B}{3m_e}\right)^{1/2}Z^2T^{1/2}\bar{g}_B\]

where where \(Z\) is the nuclear charge, \(T\) is the electron temperature, and \(\bar{g}_{B}\) is the wavelength-averaged and velocity-averaged Gaunt factor. The Gaunt factor is calculated using the methods of [R34]. Note that this expression for the loss rate is just the integral over wavelength of Eq. 5.14a of [R33], the free-free emission, and is expressed in units of erg \(\mathrm{cm}^3\,\mathrm{s}^{-1}\).

References

[R33](1, 2, 3) Rybicki and Lightman, 1979, Radiative Processes in Astrophysics, (Wiley-VCH)
[R34](1, 2) Karzas and Latter, 1961, ApJSS, 6, 167
ioneqOne()[source] [edit on github]

Provide the ionization equilibrium for the selected ion as a function of temperature. Similar to but not identical to ion.ioneqOne() returned in self.IoneqOne

ioneq_one(stage, **kwargs)[source] [edit on github]

Calculate the equilibrium fractional ionization of the ion as a function of temperature.

Uses the ChiantiPy.core.ioneq module and does a first-order spline interpolation to the data. An ionization equilibrium file can be passed as a keyword argument, ioneqfile. This can be passed through as a keyword argument to any of the functions that uses the ionization equilibrium.

Parameters:

stage : int

Ionization stage, e.g. 25 for Fe XXV

itoh_gaunt_factor(wavelength)[source] [edit on github]

Calculates the free-free gaunt factors of [R35].

An analytic fitting formulae for the relativistic Gaunt factor is given by Eq. 4 of [R35],

\[g_{Z} = \sum^{10}_{i,j=0}a_{ij}t^iU^j\]

where,

\[t = \frac{1}{1.25}(\log_{10}{T} - 7.25),\ U = \frac{1}{2.5}(\log_{10}{u} + 1.5),\]

\(u=hc/\lambda k_BT\), and \(a_{ij}\) are the fitting coefficients and are read in using ChiantiPy.tools.io.itohRead and are given in Table 4 of [R35]. These values are valid for \(6<\log_{10}(T)< 8.5\) and \(-4<\log_{10}(u)<1\).

See also

ChiantiPy.tools.io.itohRead
Read in Gaunt factor coefficients from [R35]

References

[R35](1, 2, 3, 4, 5) Itoh, N. et al., 2000, ApJS, 128, 125
karzas_cross_section(photon_energy, ionization_potential, n, l)[source] [edit on github]

Calculate the photoionization cross-sections using the Gaunt factors of [R36].

The free-bound photoionization cross-section is given by,

\[\sigma_i^{bf} = 1.077294\times8065.54\times10^{16}\left(\frac{I_i}{hc}\right)^2\left(\frac{hc}{E}\right)^3\frac{g_{bf}}{n_i},\]

where \(I_i\) is the ionization potential of the \(i^{\mathrm{th}}\) level, \(E\) is the photon energy, \(g_{bf}\) is the Gaunt factor calculated according to [R36], and \(n_i\) is the principal quantum number of the \(i^{\mathrm{th}}\) level. \(\sigma_i^{bf}\) is units of \(\mathrm{cm}^{2}\). This expression is given by Eq. 13 of [R37]. For more information on the photoionization cross-sections, see Peter Young’s notes on free-bound continuum.

Parameters:

photon_energy : array-like

ionization_potential : float

n : int

l : int

References

[R36](1, 2, 3) Karzas and Latter, 1961, ApJSS, 6, 167
[R37](1, 2) Young et al., 2003, ApJSS, 144, 135
klgfbInterp(wvl, n, l)[source] [edit on github]

A Python version of the CHIANTI IDL procedure karzas_xs.

Interpolates free-bound gaunt factor of Karzas and Latter, (1961, Astrophysical Journal Supplement Series, 6, 167) as a function of wavelength (wvl).

mewe_gaunt_factor(**kwargs)[source] [edit on github]

Calculate the Gaunt factor according to [R38] for a single ion \(Z_z\).

Using Eq. 9 of [R38], the free-bound Gaunt factor for a single ion can be written as,

\[G_{fb}^{Z,z} = \frac{E_H}{k_BT}\mathrm{Ab}(Z)\frac{N(Z,z)}{N(Z)}f(Z,z,n)\]

where \(E_H\) is the ground-state potential of H, \(\mathrm{Ab}(Z)\) is the elemental abundance, \(\frac{N(Z,z)}{N(Z)}\) is the fractional ionization, and \(f(Z,z,n)\) is given by Eq. 10 and is approximated by Eq 16 as,

\[f(Z,z,n) \approx f_2(Z,z,n_0) = 0.9\frac{\zeta_0z_0^4}{n_0^5}\exp{\left(\frac{E_Hz_0^2}{n_0^2k_BT}\right)} + 0.42\frac{z^4}{n_0^{3/2}}\exp{\left(\frac{E_Hz^2}{(n_0 + 1)^2k_BT}\right)}\]

where \(n_0\) is the principal quantum number, \(z_0\) is the effective charge (see Eq. 7 of [R38]), and \(\zeta_0\) is the number of vacancies in the 0th shell and is given in Table 1 of [R38]. Here it is calculated in the same manner as in fb_rad_loss.pro of the CHIANTI IDL library. Note that in the expression for \(G_{fb}\), we have not included the \(N_H/n_e\) factor.

Raises:

ValueError

If no .fblvl file is available for this ion

References

[R38](1, 2, 3, 4, 5) Mewe, R. et al., 1986, A&AS, 65, 511
sutherland_gaunt_factor(wavelength)[source] [edit on github]

Calculates the free-free gaunt factor calculations of [R39].

The Gaunt factors of [R39] are read in using ChiantiPy.tools.io.gffRead as a function of \(u\) and \(\gamma^2\). The data are interpolated to the appropriate wavelength and temperature values using map_coordinates.

References

[R39](1, 2, 3) Sutherland, R. S., 1998, MNRAS, 300, 321
verner_cross_section(photon_energy)[source] [edit on github]

Calculates the photoionization cross-section using data from [R40] for transitions to the ground state.

The photoionization cross-section can be expressed as \(\sigma_i^{fb}=F(E/E_0)\) where \(F\) is an analytic fitting formula given by Eq. 1 of [R40],

\[F(y) = ((y-1)^2 + y_w^2)y^{-Q}(1 + \sqrt{y/y_a})^{-P},\]

where \(E\) is the photon energy, \(n\) is the principal quantum number, \(l\) is the orbital quantum number, \(Q = 5.5 + l - 0.5P\), and \(\sigma_0,E_0,y_w,y_a,P\) are fitting paramters. These can be read in using ChiantiPy.tools.io.vernerRead.

References

[R40](1, 2, 3) Verner & Yakovlev, 1995, A&AS, 109, 125