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.
See also
- @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
See also
- @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.