ebisim.xs module

This module contains functions to compute the cross sections for various ionisation and recombination processes.

@numba.jitebisim.xs.cxxs(q, ip)[source]

Single charge exchange cross section according to the Mueller Salzborn formula

Parameters
  • q (int) – Charge state of the colliding ion

  • ip (float) – <eV> Ionisation potential of the collision partner (neutral gas)

Returns

float – <m^2> Charge exchange cross section

@numba.jitebisim.xs.drxs_energyscan(element, fwhm, e_kin=None, n=1000)[source]

Creates an array of DR cross sections for varying electron energies.

Parameters
  • element (ebisim.Element) – An ebisim.Element object that holds the required physical information for cross section calculations.

  • fwhm (float) – <eV> Energy spread to apply for the resonance smearing, expressed in terms of full width at half maximum.

  • e_kin (None or numpy.ndarray, optional) – <eV> If e_kin is None, the range of sampling energies is chosen based on the binding enrgies of the element and energies are sampled on a logscale. If e_kin is an array with 2 elements, they are interpreted as the minimum and maximum sampling energy. If e_kin is an array with more than two values, the energies are taken as the sampling energies directly, by default None.

  • n (int, optional) – The number of energy sampling points, if the sampling locations are not supplied by the user, by default 1000.

Returns

  • e_samp (numpy.ndarray) – <eV> Array holding the sampling energies

  • xs_scan (numpy.ndarray) – <m^2> Array holding the cross sections, where the row index corresponds to the charge state and the columns correspond to the different sampling energies

@numba.jitebisim.xs.drxs_mat(element, e_kin, fwhm)[source]

Dielectronic recombination cross section. The cross sections are estimated by weighing the strength of each transition with the profile of a normal Gaussian distribution. This simulates the effective spreading of the resonance peaks due to the energy spread of the electron beam

Parameters
  • element (ebisim.Element) – An ebisim.Element object that holds the required physical information for cross section calculations.

  • e_kin (float) – <eV> Kinetic energy of the impacting electron.

  • fwhm (float) – <eV> Energy spread to apply for the resonance smearing, expressed in terms of full width at half maximum.

Returns

numpy.array – <m^2> The cross sections for each individual charge state, arranged in a matrix suitable for implementation of a rate equation like dN/dt = j * xs_matrix dot N. out[q, q] = - cross section of q+ ion out[q, q+1] = + cross section of (q+1)+ ion

See also

ebisim.xs.drxs_vec

Similar method with different output format.

@numba.jitebisim.xs.drxs_vec(element, e_kin, fwhm)[source]

Dielectronic recombination cross section. The cross sections are estimated by weighing the strength of each transition with the profile of a normal Gaussian distribution. This simulates the effective spreading of the resonance peaks due to the energy spread of the electron beam

Parameters
  • element (ebisim.Element) – An ebisim.Element object that holds the required physical information for cross section calculations.

  • e_kin (float) – <eV> Kinetic energy of the impacting electron.

  • fwhm (float) – <eV> Energy spread to apply for the resonance smearing, expressed in terms of full width at half maximum.

Returns

numpy.ndarray – <m^2> The cross sections for each individual charge state, where the array-index corresponds to the charge state, i.e. out[q] ~ cross section of q+ ion.

See also

ebisim.xs.drxs_mat

Similar method with different output format.

@numba.jitebisim.xs.eixs_energyscan(element, e_kin=None, n=1000)[source]

Creates an array of EI cross sections for varying electron energies.

Parameters
  • element (ebisim.Element) – An ebisim.Element object that holds the required physical information for cross section calculations.

  • e_kin (None or numpy.ndarray, optional) – <eV> If e_kin is None, the range of sampling energies is chosen based on the binding enrgies of the element and energies are sampled on a logscale. If e_kin is an array with 2 elements, they are interpreted as the minimum and maximum sampling energy. If e_kin is an array with more than two values, the energies are taken as the sampling energies directly, by default None.

  • n (int, optional) – The number of energy sampling points, if the sampling locations are not supplied by the user, by default 1000.

Returns

  • e_samp (numpy.ndarray) – <eV> Array holding the sampling energies

  • xs_scan (numpy.ndarray) – <m^2> Array holding the cross sections, where the row index corresponds to the charge state and the columns correspond to the different sampling energies

@numba.jitebisim.xs.eixs_mat(element, e_kin)[source]

Electron ionisation cross section.

Parameters
  • element (ebisim.Element) – An ebisim.Element object that holds the required physical information for cross section calculations.

  • e_kin (float) – <eV> Kinetic energy of the impacting electron.

Returns

numpy.array – <m^2> The cross sections for each individual charge state, arranged in a matrix suitable for implementation of a rate equation like dN/dt = j * xs_matrix dot N. out[q, q] = - cross section of q+ ion out[q+1, q] = + cross section of (q+1)+ ion

See also

ebisim.xs.eixs_vec

Similar method with different output format.

@numba.jitebisim.xs.eixs_vec(element, e_kin)[source]

Electron ionisation cross section according to a simplified version of the models given in [Lotz1967].

Parameters
  • element (ebisim.Element) – An ebisim.Element object that holds the required physical information for cross section calculations.

  • e_kin (float) – <eV> Kinetic energy of the impacting electron.

Returns

numpy.ndarray – <m^2> The cross sections for each individual charge state, where the array-index corresponds to the charge state, i.e. out[q] ~ cross section of q+ ion.

References

Lotz1967

“An empirical formula for the electron-impact ionization cross-section”, W. Lotz, Zeitschrift Für Physik, 206(2), 205–211 (1967), https://doi.org/10.1007/BF01325928

See also

ebisim.xs.eixs_mat

Similar method with different output format.

ebisim.xs.lookup_lotz_factors(e_cfg, shellorder)[source]

Analyses the shell structure of each charge state and looks up the correct factors for the Lotz formula.

This function is primarily meant for internal use inside the ebisim.get_element() function and the results are consumed during the Electron Ionisation (EI) cross section computations.

Parameters
  • e_cfg (numpy.ndarray) – Matrix holding the number of electrons in each shell. The row index corresponds to the charge state, the columns to different subshells

  • shellorder (numpy.ndarray) – Tuple containing the names of all shells in the same order as they appear in ‘e_cfg’

Returns

  • ei_lotz_a (numpy.ndarray) – Array holding ‘Lotz’ factor ‘a’ for each occupied shell in ‘e_cfg’ up to a certain charge state.

  • ei_lotz_b (numpy.ndarray) – Array holding ‘Lotz’ factor ‘b’ for each occupied shell in ‘e_cfg’ up to a certain charge state.

  • ei_lotz_b (numpy.ndarray) – Array holding ‘Lotz’ factor ‘c’ for each occupied shell in ‘e_cfg’ up to a certain charge state.

@numba.jitebisim.xs.precompute_rr_quantities(e_cfg, shell_n)[source]

Precomputes the effective valence shell and nuclear charge for all charge states, as required for the computation of radiative recombinations cross sections. According to the procedure described in [Kim1983a].

This function is primarily meant for internal use inside the ebisim.get_element() function.

Parameters
  • e_cfg (numpy.ndarray) – Matrix holding the number of electrons in each shell. The row index corresponds to the charge state, the columns to different subshells

  • shell_n (numpy.ndarray) – Array holding the main quantum number n corresponding to each shell listed in e_cfg

Returns

  • rr_z_eff (numpy.ndarray) – Array holding the effective nuclear charge for each charge state, where the array-index corresponds to the charge state.

  • rr_n_0_eff (numpy.ndarray) – Array holding the effective valence shell number for each charge state, where the array-index corresponds to the charge state.

References

Kim1983a

“Direct radiative recombination of electrons with atomic ions: Cross sections and rate coefficients”, Young Soon Kim and R. H. Pratt, Phys. Rev. A 27, 2913 (1983), https://journals.aps.org/pra/abstract/10.1103/PhysRevA.27.2913

@numba.jitebisim.xs.rrxs_energyscan(element, e_kin=None, n=1000)[source]

Creates an array of RR cross sections for varying electron energies.

Parameters
  • element (ebisim.Element) – An ebisim.Element object that holds the required physical information for cross section calculations.

  • e_kin (None or numpy.ndarray, optional) – <eV> If e_kin is None, the range of sampling energies is chosen based on the binding enrgies of the element and energies are sampled on a logscale. If e_kin is an array with 2 elements, they are interpreted as the minimum and maximum sampling energy. If e_kin is an array with more than two values, the energies are taken as the sampling energies directly, by default None.

  • n (int, optional) – The number of energy sampling points, if the sampling locations are not supplied by the user, by default 1000.

Returns

  • e_samp (numpy.ndarray) – <eV> Array holding the sampling energies

  • xs_scan (numpy.ndarray) – <m^2> Array holding the cross sections, where the row index corresponds to the charge state and the columns correspond to the different sampling energies

@numba.jitebisim.xs.rrxs_mat(element, e_kin)[source]

Radiative recombination cross section.

Parameters
  • element (ebisim.Element) – An ebisim.Element object that holds the required physical information for cross section calculations.

  • e_kin (float) – <eV> Kinetic energy of the impacting electron.

Returns

numpy.array – <m^2> The cross sections for each individual charge state, arranged in a matrix suitable for implementation of a rate equation like dN/dt = j * xs_matrix dot N. out[q, q] = - cross section of q+ ion out[q, q+1] = + cross section of (q+1)+ ion

See also

ebisim.xs.rrxs_vec

Similar method with different output format.

@numba.jitebisim.xs.rrxs_vec(element, e_kin)[source]

Radiative recombination cross section according to [Kim1983].

Parameters
  • element (ebisim.Element) – An ebisim.Element object that holds the required physical information for cross section calculations.

  • e_kin (float) – <eV> Kinetic energy of the impacting electron.

Returns

numpy.ndarray – <m^2> The cross sections for each individual charge state, where the array-index corresponds to the charge state, i.e. out[q] ~ cross section of q+ ion.

References

Kim1983

“Direct radiative recombination of electrons with atomic ions: Cross sections and rate coefficients”, Young Soon Kim and R. H. Pratt, Phys. Rev. A 27, 2913 (1983), https://journals.aps.org/pra/abstract/10.1103/PhysRevA.27.2913

See also

ebisim.xs.rrxs_mat

Similar method with different output format.