Ion#

class fiasco.Ion(ion_name, temperature: Unit('K'), abundance='sun_coronal_1992_feldman_ext', ionization_fraction='chianti', ionization_potential='chianti', *args, **kwargs)[source]#

Bases: IonBase

Class for representing a CHIANTI ion.

The ion object is the fundamental unit of fiasco. This object contains all of the properties and methods needed to access important information about each ion from the CHIANTI database as well as compute common derived quantities.

Parameters:
  • ion_name (str or tuple) – Name of the ion. This can be either a string denoting the name or a tuple containing the atomic number and ionization stage. See parse_ion_name for a list of all possible input formats.

  • temperature (Quantity) – Temperature array over which to evaluate temperature dependent quantities.

  • abundance (str or float, optional) – If a string is provided, use the appropriate abundance dataset. If a float is provided, use that value as the abundance.

  • ionization_fraction (str or float or array-like, optional) – If a string is provided, use the appropriate “ioneq” dataset. If an array is provided, it must be the same shape as temperature. If a scalar value is passed in, the ionization fraction is assumed constant at all temperatures.

  • ionization_potential (str or Quantity, optional) – If a string is provided, use the appropriate “ip” dataset. If a scalar value is provided, use that value for the ionization potential. This value should be convertible to eV.

Attributes Summary

abundance

Elemental abundance relative to H.

atomic_number

The atomic number of the element, \(Z\).

atomic_symbol

The standard atomic symbol for the element, e.g. "H" for hydrogen.

charge_state

Total number of electrons removed, \(z\).

dielectronic_recombination_rate

Dielectronic recombination rate as a function of temperature.

direct_ionization_rate

Ionization rate due to collisions as a function of temperature.

effective_collision_strength

Maxwellian-averaged collision strength, typically denoted by \(\Upsilon\), as a function of temperature.

electron_collision_deexcitation_rate

Collisional de-excitation rate coefficient for electrons.

electron_collision_excitation_rate

Collisional excitation rate coefficient for electrons.

element_name

The full name of the element, e.g. "hydrogen".

excitation_autoionization_rate

Ionization rate due to excitation autoionization.

formation_temperature

Temperature at which ionization_fraction is maximum.

helium_like

Is the ion in the helium isoelectronic sequence.

hydrogenic

Is the ion in the hydrogen isoelectronic sequence.

ion_name

The name of the element and ionization stage, e.g. "Fe 11".

ion_name_roman

Name of the element and ionization stage in roman numeral format.

ionization_fraction

Ionization fraction of an ion

ionization_potential

Ionization potential.

ionization_rate

Total ionization rate as a function of temperature.

ionization_stage

Number denoting the degree of ionization, with 1 denoting the neutral stage.

ionization_stage_roman

Ionization stage in roman numeral format.

isoelectronic_sequence

Atomic symbol denoting to which isoelectronic sequence this ion belongs.

levels

Information for each energy level of the ion.

mass

Atomic mass of the ion.

n_levels

Number of energy levels in the atomic model.

n_transitions

Number of transitions in the CHIANTI model

period

Row of the periodic table to which the element belongs

proton_collision_deexcitation_rate

Collisional de-excitation rate coefficient for protons.

proton_collision_excitation_rate

Collisional excitation rate coefficient for protons.

proton_electron_ratio

radiative_recombination_rate

Radiative recombination rate as a function of temperature.

recombination_rate

Total recombination rate as a function of temperature.

thermal_energy

Thermal energy, \(k_BT\), as a function of temperature.

transitions

A Transitions object holding the information about transitions for this ion.

Methods Summary

contribution_function(density, **kwargs)

Contribution function \(G(n_e,T)\) for all transitions.

emissivity(density, **kwargs)

Emissivity as a function of temperature and density for all transitions.

free_bound(wavelength[, use_verner])

Free-bound continuum emission of the recombined ion.

free_bound_radiative_loss()

The radiative loss rate for free-bound emission as a function of temperature, integrated over all wavelengths.

free_free(wavelength)

Free-free continuum emission as a function of temperature and wavelength.

free_free_radiative_loss([use_itoh])

Free-free continuum radiative losses as a function of temperature.

intensity(density, emission_measure, **kwargs)

Line-of-sight intensity computed assuming a particular column emission measure.

level_populations(density[, ...])

Energy level populations as a function of temperature and density.

next_ion()

Return an Ion instance with the next highest ionization stage.

previous_ion()

Return an Ion instance with the next lowest ionization stage.

spectrum(*args, **kwargs)

Construct the spectrum using a given filter over a specified wavelength range.

two_photon(wavelength, electron_density, ...)

Two-photon continuum emission of a hydrogenic or helium-like ion.

Attributes Documentation

abundance#

Elemental abundance relative to H.

atomic_number#

The atomic number of the element, \(Z\).

atomic_symbol#

The standard atomic symbol for the element, e.g. “H” for hydrogen.

charge_state#

Total number of electrons removed, \(z\).

dielectronic_recombination_rate#

Dielectronic recombination rate as a function of temperature.

The dielectronic recombination rate, as a function of \(T\), is computed using one of two methods. The methodology used depends on the type of dielectronic recombination rate fitting coefficients available for the particular ion in the CHIANTI atomic database.

The first method is given in Eq. 3 of Zatsarinny et al. [ZGK+03],

\[\alpha_{DR} = T^{-3/2}\sum_ic_ie^{-E_i/T}\]

where \(c_i\) and \(E_i\) are fitting coefficients stored in the CHIANTI database.

The second method is given by Eq. 5 of Shull and van Steenberg [SvanSteenberg82],

\[\alpha_{DR} = A T^{-3/2}e^{-T_0/T}(1 + B e^{-T_1/T})\]

where \(A,B,T_0,T_1\) are fitting coefficients stored in the CHIANTI database.

direct_ionization_rate#

Ionization rate due to collisions as a function of temperature.

The ionization rate due to collisions with free electrons assuming a Maxwell-Boltzmann distribution. At a minimum, this represents the contribution from the outer-shell electron though contributions from inner-shell electrons are also considered for some ions. For more details, see the topic guide on The direct ionization rate and cross-section as well as Young [You25].

effective_collision_strength#

Maxwellian-averaged collision strength, typically denoted by \(\Upsilon\), as a function of temperature.

According to Eq. 4.11 of Phillips et al. [PFL08], \(\Upsilon\) is given by,

\[\Upsilon = \int_0^\infty\mathrm{d}\left(\frac{E}{k_BT}\right)\,\Omega_{ji}\exp{\left(-\frac{E}{k_BT}\right)}\]

where \(\Omega_{ji}\) is the collision strength. These Maxwellian-averaged collision strengths are stored in dimensionless form in CHIANTI and are rescaled to the appropriate temperature.

See also

fiasco.util.burgess_tully_descale

Descale and interpolate \(\Upsilon\).

electron_collision_deexcitation_rate#

Collisional de-excitation rate coefficient for electrons.

According to Eq. 4.12 of Phillips et al. [PFL08], the rate coefficient for collisional de-excitation is given by,

\[C^d_{ji} = I_Ha_0^2\sqrt{\frac{8\pi}{mk_B}}\frac{\Upsilon}{\omega_jT^{1/2}},\]

where \(j,i\) are the upper and lower level indices, respectively, \(I_H\) is the ionization potential for H, \(a_0\) is the Bohr radius, \(\Upsilon\) is the effective collision strength, and \(\omega_j\) is the statistical weight of the level \(j\).

See also

electron_collision_excitation_rate

Excitation rate due to collisions

effective_collision_strength

Maxwellian-averaged collision strength, \(\Upsilon\)

electron_collision_excitation_rate#

Collisional excitation rate coefficient for electrons.

The rate coefficient for collisional excitation is given by,

\[C^e_{ij} = \frac{\omega_j}{\omega_i}C^d_{ji}\exp{\left(-\frac{k_BT_e}{\Delta E_{ij}}\right)}\]

where \(j,i\) are the upper and lower level indices, respectively, \(\omega_j,\omega_i\) are the statistical weights of the upper and lower levels, respectively, and \(\Delta E_{ij}\) is the energy of the transition [PFL08].

Parameters:

deexcitation_rate (Quantity, optional) – Optionally specify deexcitation rate to speedup calculation

See also

electron_collision_deexcitation_rate

De-excitation rate due to collisions

element_name#

The full name of the element, e.g. “hydrogen”.

excitation_autoionization_rate#

Ionization rate due to excitation autoionization.

Following Eq. 4.74 of Phillips et al. [PFL08], the excitation autoionization rate is given by,

\[\alpha_{EA} = \frac{h^2}{(2\pi m_e)^{3/2}}(k_BT)^{-1/2}\sum_{lj}\Upsilon^{EA}_{lj}\exp{\left(-\frac{\Delta E_{lj}}{k_BT}\right)}\]

where \(\Upsilon^{EA}\) is the thermally-averaged excitation autoionization cross-section as stored in CHIANTI and includes the additional \(\omega_j\) multiplicity factor compared to the expression in Phillips et al. [PFL08]. The sum is taken over inelastic collisions to level \(j\) from a level \(l\) below the ionization threshold. Additionally, note that the constant has been rewritten in terms of \(h\) rather than \(I_H\) and \(a_0\).

formation_temperature#

Temperature at which ionization_fraction is maximum. This is a useful proxy for the temperature at which lines for this ion are formed.

helium_like#

Is the ion in the helium isoelectronic sequence.

hydrogenic#

Is the ion in the hydrogen isoelectronic sequence.

ion_name#

The name of the element and ionization stage, e.g. “Fe 11”.

ion_name_roman#

Name of the element and ionization stage in roman numeral format.

ionization_fraction#

Ionization fraction of an ion

ionization_potential#

Ionization potential.

ionization_rate#

Total ionization rate as a function of temperature.

The total ionization rate, as a function of temperature, for a given ion is the sum of the direct ionization and excitation autoionization rates such that,

\[\alpha_{I} = \alpha_{DI} + \alpha_{EA}\]
ionization_stage#

Number denoting the degree of ionization, with 1 denoting the neutral stage.

ionization_stage_roman#

Ionization stage in roman numeral format.

isoelectronic_sequence#

Atomic symbol denoting to which isoelectronic sequence this ion belongs.

levels#

Information for each energy level of the ion.

mass#

Atomic mass of the ion.

n_levels#

Number of energy levels in the atomic model.

Note

It is possible this number will not match the number of levels in levels. The number of levels in a model is determined by the number of energy levels as well as the level information available for radiative decays and collisions.

n_transitions#

Number of transitions in the CHIANTI model

period#

Row of the periodic table to which the element belongs

proton_collision_deexcitation_rate#

Collisional de-excitation rate coefficient for protons.

As in the electron case, the proton collision de-excitation rate is given by,

\[C^{d,p}_{ji} = \frac{\omega_i}{\omega_j}\exp{\left(\frac{E}{k_BT}\right)}C^{e,p}_{ij}\]

where \(C^{e,p}_{ji}\) is the excitation rate due to collisions with protons.

Note that \(T\) is technically the proton temperature. In the case of a thermal plasma, the electron and proton temperatures are equal, \(T_e=T_p\). See Section 4.9.4 of Phillips et al. [PFL08] for additional information on proton collision rates.

See also

proton_collision_excitation_rate

Excitation rate due to collisions with protons

proton_collision_excitation_rate#

Collisional excitation rate coefficient for protons.

These excitation rates are stored in CHIANTI and then rescaled to the appropriate temperatures using the method of Burgess and Tully [BT92].

proton_electron_ratio#
radiative_recombination_rate#

Radiative recombination rate as a function of temperature.

The recombination rate due to interaction with the ambient radiation field is calculated using a set of fit parameters using one of two methods. The methodology used depends on the type of radiative recombination rate fitting coefficients available for the particular ion in the CHIANTI atomic database.

The first method is given in Eq. 4 of Verner and Ferland [VF96] and Eq. 1 of Badnell [Bad06],

\[\alpha_{RR} = A(\sqrt{T/T_0}(1 + \sqrt{T/T_0})^{1-B}(1 + \sqrt{T/T_1})^{1+B})^{-1}\]

where \(A,B,T_0,T_1\) are fitting coefficients provided for each ion in the CHIANTI atomic database. In some cases, the fitting coefficient \(B\) is also modified as,

\[B \to B + Ce^{-T_2/T}\]

where \(C\) and \(T_2\) are additional fitting coefficients (see Eq. 2 of Badnell [Bad06]).

The second method is given by Eq. 4 of Shull and van Steenberg [SvanSteenberg82] and Eq. 1 of Verner and Ferland [VF96],

\[\alpha_{RR} = A(T/T_0)^{-\eta}\]

where \(A\) and \(\eta\) are fitting parameters provided in the CHIANTI atomic database and \(T_0=10^4\) K.

recombination_rate#

Total recombination rate as a function of temperature.

The total recombination rate, as a function of temperature, for a given ion is the sum of the radiative and dielectronic recombination rates such that,

\[\alpha_{R} = \alpha_{RR} + \alpha_{DR}\]

Important

For most ions, this total recombination rate is computed by summing the outputs of the radiative_recombination_rate and dielectronic_recombination_rate methods. However, for some ions, total recombination rate data is available in the so-called .trparams files. For these ions, the output of this method will not be equal to the sum of the dielectronic_recombination_rate and radiative_recombination_rate method. As such, when computing the total recombination rate, this method should always be used.

thermal_energy#

Thermal energy, \(k_BT\), as a function of temperature.

transitions#

A Transitions object holding the information about transitions for this ion.

Methods Documentation

contribution_function(density: Unit('1 / cm3'), **kwargs)[source]#

Contribution function \(G(n_e,T)\) for all transitions.

The contribution function for ion \(k\) of element \(X\) for a particular transition \(ij\) is given by,

\[G_{ij} = \mathrm{Ab}(X)f_{X,k}N_jA_{ij}\Delta E_{ij}\frac{1}{n_e},\]

Note that the contribution function is often defined in differing ways by different authors. The contribution function is defined as above in Young et al. [YDL+16].

The corresponding wavelengths can be retrieved with,

ion.transitions.wavelength[ion.transitions.is_bound_bound]

Important

The ratio \(n_H/n_e\), which is often approximated as \(n_H/n_e\approx0.83\), is explicitly not included here. This means that when computing an intensity with the result of this function, the accompanying emission measure is \(\mathrm{EM}=\mathrm{d}hn_Hn_e\) rather than \(n_e^2\).

Parameters:
  • density (Quantity) – Electron number density

  • couple_density_to_temperature (bool, optional) – If True, the density will vary along the same axis as temperature in the computed level populations. The number of densities must be the same as the number of temperatures. This is useful, for example, when computing the level populations at constant pressure and is also much faster than computing the level populations along an independent density axis. By default, this is set to False.

Returns:

g (Quantity) – A (l, m, k) shaped quantity, where l is the number of temperatures, m is the number of densities, and k is the number of transitions corresponding to the transition wavelengths described above. If couple_density_to_temperature=True, then m=1 and l represents the number of temperatures and densities.

emissivity(density: Unit('1 / cm3'), **kwargs)[source]#

Emissivity as a function of temperature and density for all transitions.

The emissivity is given by the expression,

\[\epsilon(n_e,T) = G(n_e,T)n_Hn_e\]

where \(G\) is the contribution function, \(n_H\) is the H (or proton) density, \(n_e\) is the electron density, and \(T\) is the temperature. Note that, like the contribution function, emissivity is often defined in in differing ways by different authors. Here, we use the definition of the emissivity as given by Eq. 3 of Young et al. [YDL+16].

Note

The H number density, \(n_H\), is computed using density combined with the output of proton_electron_ratio.

Parameters:
  • density (Quantity) – Electron number density.

  • couple_density_to_temperature (bool, optional) – If True, the density will vary along the same axis as temperature in the computed level populations. The number of densities must be the same as the number of temperatures. This is useful, for example, when computing the level populations at constant pressure and is also much faster than computing the level populations along an independent density axis. By default, this is set to False.

Returns:

Quantity – A (l, m, k) shaped quantity, where l is the number of temperatures, m is the number of densities, and k is the number of transitions corresponding to the transition wavelengths described in contribution_function. If couple_density_to_temperature=True, then m=1 and l represents the number of temperatures and densities.

See also

contribution_function

Calculate contribution function, \(G(n,T)\)

free_bound(wavelength: Unit('Angstrom'), use_verner=True)[source]#

Free-bound continuum emission of the recombined ion.

Important

This does not include the ionization fraction or abundance factors.

Important

Unlike the equivalent IDL routine, the output here is not expressed per steradian and as such the factor of \(1/4\pi\) is not included.

When an electron is captured by an ion of charge \(z+1\) (the recombining ion), it creates a an ion of charge \(z\) (the recombined ion) and produces a continuum of emission called the free-bound continuum. The emission of the recombined ion is given by,

\[C_{fb}(\lambda, T) = \frac{2}{hc^3(k_B m_e)^{3/2}\sqrt{2\pi}}\frac{E^5}{T^{3/2}}\sum_i\frac{\omega_i}{\omega_0}\sigma_i^{\mathrm{bf}}\exp{\left(-\frac{E-I_i}{k_BT}\right)}\]

where \(E\) is the energy of the outgoing photon, \(\omega_i,\omega_0\) are the statistical weights of the \(i\)-th level of the recombined ion and the ground level of the recombining ion, respectively, \(\sigma_i^{\mathrm{bf}}\) is the free-bound cross-section, and \(I_i\) is the energy required to ionize the recombined ion from level \(i\). A detailed derivation of this formula can be found in Young [You21].

For ground state transitions, the photoionization cross-section \(\sigma_i^{\mathrm{bf}}\) is evaluated using Eq. 1 of Verner and Yakovlev [VY95] if use_verner is set to True. For all other transitions, and in all cases if use_verner is set to False, \(\sigma_i^{\mathrm{bf}}\) is evaluated using the method of Karzas and Latter [KL61].

Parameters:
  • wavelength (Quantity)

  • use_verner (bool, optional) – If True, evaluate ground-state cross-sections using method of Verner and Yakovlev [VY95].

free_bound_radiative_loss()[source]#

The radiative loss rate for free-bound emission as a function of temperature, integrated over all wavelengths.

Important

This does not include the ionization fraction or abundance factors.

Note

This ion, for which the free-bound radiative loss is being calculated, is taken to be the recombining ion. The ion one ionization stage lower is taken to be the recombined ion.

The calculation integrates Equation 1a of Mewe et al. [MLvandOord86], where the Gaunt factor is summed only for free-bound emission [You19b]. Since the form of the Gaunt factor used by Mewe et al. [MLvandOord86] does not depend on wavelength, the integral is straightforward.

The continuum intensity per unit emission measure is given by:

\[C_{fb}(\lambda, T) = \frac{F g_{fb}}{\lambda^{2}\ T^{1/2}} \exp{\Big(\frac{-h c}{\lambda k_{B} T}\Big)}\]

where

\[F = \frac{64 \pi}{3} \sqrt{\frac{\pi}{6}} \frac{q_{e}^{6}}{c^{2} m_{e}^{2} k_{B}^{1/2}}\]

is a constant [GM78]. Integrating in wavelength space gives the free-bound loss rate,

\[R_{fb} = \frac{F k_{B} g_{fb} T^{1/2}}{h c} \exp{\Big(\frac{-h c}{\lambda k_{B} T}\Big)}\]

We have dropped the factor of \(n_{e}^{2}\) here to make the loss rate per unit emission measure.

Note

The form of \(C_{fb}\) used by Mewe et al. [MLvandOord86] and given above is slightly different than the form used in free_bound and as such the two approaches are not entirely self-consistent. This particular form is used, rather than calling free_bound and integrating the result, for the sake of efficiency.

See also

fiasco.GauntFactor.free_bound_integrated

Calculation of \(g_{fb}\)

free_free(wavelength: Unit('Angstrom'))[source]#

Free-free continuum emission as a function of temperature and wavelength.

Important

This does not include ionization fraction or abundance factors.

Free-free emission, also known as bremsstrahlung (or “braking radiation”), is produced when an ion interacts with a free electron, reduces the momentum of the free electron, and, by conservation of energy and momentum, produces a photon. According to Eq. 4.114 of Phillips et al. [PFL08] the free-free emission produced by a thermal distribution of electrons as a function of temperature and wavelength is given by,

\[C_{ff}(\lambda,T_e) = \frac{c}{3m_e}\left(\frac{\alpha h}{\pi}\right)^3\sqrt{\frac{2\pi}{3m_ek_B}}\frac{z^2}{\lambda^2T_e^{1/2}}\exp{\left(-\frac{hc}{\lambda k_BT_e}\right)}\langle g_{ff}\rangle,\]

where \(\alpha\) is the fine-structure constant, \(z\) is the charge of the ion, and \(\langle g_{ff}\rangle\) is the velocity-averaged free-free Gaunt factor.

Parameters:

wavelength (Quantity)

See also

fiasco.GauntFactor.free_free

Calculation of \(\langle g_{ff}\rangle\).

fiasco.IonCollection.free_free

Includes abundance and ionization equilibrium.

free_free_radiative_loss(use_itoh=False)[source]#

Free-free continuum radiative losses as a function of temperature.

Important

This does not include the ionization fraction or abundance factors.

The total free-free radiative loss is given by integrating the emissivity over all wavelengths. The total losses per unit emission measure are then given by Equation 18 of [Sut98],

\[R_{ff}(T_e) = F_{k} \sqrt{(T_{e})} z^{2} \langle g_{t,ff}\rangle\]

where \(T_{e}\) is the electron temperature, \(F_{k}\) is a constant, \(z\) is the charge state, and \(\langle g_{t,ff}\rangle\) is the wavelength-integrated free-free Gaunt factor. The prefactor \(F_{k}\) is defined in Equation 19 of Sutherland [Sut98],

\[\begin{split}F_k =& \frac{16e^6}{3^{3/2}c^3}\sqrt{\frac{2\pi k_B}{\hbar^2m_e^3}}\\ \approx& 1.42555669\times10^{-27}\,\mathrm{cm}^{5}\,\mathrm{g}\,\mathrm{K}^{-1/2}\,\mathrm{s}^{3}.\end{split}\]
Parameters:

use_itoh (bool, optional) – Whether to use Gaunt factors taken from Itoh et al. [ISK+02]. Defaults to false.

See also

fiasco.GauntFactor.free_free_integrated

Calculation of \(\langle g_{t,ff}\rangle\).

intensity(density: Unit('1 / cm3'), emission_measure: Unit('1 / cm5'), **kwargs)[source]#

Line-of-sight intensity computed assuming a particular column emission measure.

The intensity along the line-of-sight can be written as,

\[I = \frac{1}{4\pi}\int\mathrm{d}T,G(n,T)n_Hn_e\frac{dh}{dT}\]

which, in the isothermal approximation, can be simplified to,

\[I(T_0) \approx \frac{1}{4\pi}G(n,T_0)\mathrm{EM}(T_0)\]

where,

\[\mathrm{EM}(T) = \int\mathrm{d}h\,n_Hn_e\]

is the column emission measure.

Parameters:
  • density (Quantity) – Electron number density

  • emission_measure (Quantity) – Column emission measure. Must be either a scalar, an array of length 1, or an array with the same length as temperature. Note that it is assumed that the emission measure is the product of the H and electron density.

  • couple_density_to_temperature (bool, optional) – If True, the density will vary along the same axis as temperature. The number of densities must be the same as the number of temperatures. This is useful, for example, when computing the intensities at constant pressure and is also much faster than computing the intensity along an independent density axis. By default, this is set to False.

Returns:

Quantity – A (l, m, k) shaped quantity, where l is the number of temperatures, m is the number of densities, and k is the number of transitions corresponding to the transition wavelengths described in contribution_function. If couple_density_to_temperature=True, then m=1 and l represents the number of temperatures and densities.

level_populations(density: Unit('1 / cm3'), include_protons=True, include_level_resolved_rate_correction=True, couple_density_to_temperature=False, use_two_ion_model=True)[source]#

Energy level populations as a function of temperature and density.

Compute the level populations of the given ion as a function of temperature and density. This is done by solving the homogeneous linear system of equations describing the processes that populate and depopulate each energy level of each ion. Section 3 of Young et al. [YDL+16] provides a brief description of this set of equations.

Parameters:
  • density (Quantity)

  • include_protons (bool, optional) – If True (default), include proton excitation and de-excitation rates.

  • include_level_resolved_rate_correction (bool, optional) – If True (default), include the level-resolved ionization and recombination rate correction in the resulting level populations as described in Section 2.3 of Landi et al. [LDZY+06].

  • couple_density_to_temperature (bool, optional) – If True, the density will vary along the same axis as temperature in the computed level populations and the number of densities must be the same as the number of temperatures. This is useful, for example, when computing the level populations at constant pressure and is also much faster than computing the level populations along an independent density axis. By default, this is set to False.

  • use_two_ion_model (bool, optional) – If True, include processes that connect the ion to the adjacent ionization stage \(z+1\). This only makes a difference for CHIANTI database v9 and later. Note that this will likely increase the compute time for ions that have a two-ion model.

Returns:

Quantity – A (l, m, n) shaped quantity, where l is the number of temperatures, m is the number of densities, and n is the number of energy levels in the ion model. Note that n will always be the same as the n_levels, but may be different than the number of levels returned by Levels. If couple_density_to_temperature=True, then m=1 and l represents the number of temperatures and densities.

next_ion()[source]#

Return an Ion instance with the next highest ionization stage.

For example, if the current instance is Fe XII (+11), this method returns an instance of Fe XIII (+12). All other input arguments remain the same.

previous_ion()[source]#

Return an Ion instance with the next lowest ionization stage.

For example, if the current instance is Fe XII (+11), this method returns an instance of Fe XI (+10). All other input arguments remain the same.

spectrum(*args, **kwargs)[source]#

Construct the spectrum using a given filter over a specified wavelength range.

All arguments are passed directly to fiasco.IonCollection.spectrum.

See also

fiasco.IonCollection.spectrum

Compute spectrum for multiple ions

intensity

Compute LOS intensity for all transitions

two_photon(wavelength: Unit('Angstrom'), electron_density: Unit('1 / cm3'), **kwargs)[source]#

Two-photon continuum emission of a hydrogenic or helium-like ion.

Important

This does not include the ionization fraction or abundance factors.

Important

Unlike the equivalent IDL routine, the output here is not expressed per steradian and as such the factor of \(1/4\pi\) is not included.

For more details regarding this calculation, see Calculating the two-photon continuum emission.

Parameters:
  • wavelength (Quantity)

  • electron_density (Quantity)

  • kwargs (dict, optional) – All valid keyword arguments to level_populations can also be passed here. Note that in this method, proton rates are not included by default.