optmat.gas.ionisation#
The parameters of the strong-field ionisation rates of the gases (TC-439).
Tunnelling and multiphoton ionisation rates (ADK, PPT, molecular ADK) are evaluated
from a handful of properties of the atom or molecule. This module supplies them,
curated, with their sources and uncertainties. The rates of the noble gases are
optmat.gas.ionisation_rates (TC-652); the molecules’ stay with the propagation
code:
the first ionisation energy \(I_p\) (adiabatic or vertical, as chosen and stated per gas);
the ionising orbital: its label, orbital angular momentum \(l\) (an atom’s valence shell) and magnetic quantum number \(m\) along the molecular axis;
its structure coefficients \(C_l\), the asymptotic expansion of the orbital in partial waves (Tong, Zhao & Lin 2002, eqs. 1-2), from each curated tabulation;
the static polarizabilities of the neutral and of its cation, for the Stark shift of the ionisation energy and the dipole correction of the PPT rate. The neutral’s is the static limit of the electronic part of the fitted dispersion model here (the infrared, nuclear part does not follow an optical field), with the fit’s uncertainty;
the barrier-suppression constant of Tong & Lin (2005) where tabulated.
From \(I_p\) follow the effective principal quantum number \(n^* = Z / \kappa\), \(\kappa = \sqrt{2 I_p}\) (atomic units, \(Z\) the charge of the ion), and the asymptotic coefficient of the ADK and PPT rates in the Hartree approximation,
(Ammosov, Delone & Krainov 1986, eqs. 17 and 19, \(l^* = n_0^* - 1\) with
\(n_0^*\) the ground state’s), and its Stirling form (their eq. 20, which is
misprinted; see adk_coefficient_squared()).
Every choice (which ionisation energy, which tabulation) is made in
data/gas/ionisation.toml with its reason, and every value points to the curated
dataset it comes from.
Module Attributes
The per-gas choices of the ionisation parameters, each with its reason. |
Functions
|
Return the Stirling form of |
|
Read the structure coefficients of an orbital given in several datasets. |
Return the static electronic polarizability of a gas from its fitted model. |
|
|
Return the asymptotic coefficient |
Return the curated ionisation parameters of a gas. |
|
|
Read one tabulation of structure coefficients. |
Classes
|
The curated parameters of a gas's strong-field ionisation rates. |
|
The asymptotic coefficients of an ionising orbital, from one tabulation. |
- optmat.gas.ionisation.IONISATION_FILE = PosixPath('/home/docs/checkouts/optmat/checkouts/7/src/optmat/data/gas/ionisation.toml')#
The per-gas choices of the ionisation parameters, each with its reason.
- class optmat.gas.ionisation.IonisationParameters(gas, ionization_energy, ionization_energy_sigma, ionization_energy_kind, ionization_energy_source, orbital, orbital_l, orbital_m, structure, default_structure, polarizability, polarizability_sigma, polarizability_source, vertical_ionization_energy=None, vertical_ionization_energy_source='', ion_polarizability=None, ion_polarizability_source='', barrier_suppression_alpha=None, barrier_suppression_source='', barrier_suppression_zhang=None, barrier_suppression_zhang_source='', effective_charge=None, effective_charge_source='', reasons=<factory>)[source]#
Bases:
objectThe curated parameters of a gas’s strong-field ionisation rates.
- Attributes:
- gasGas
The gas.
- ionization_energyfloat
First ionisation energy, J.
- ionization_energy_sigmafloat
Its one-sigma uncertainty, J; NaN where the source states none.
- ionization_energy_kindstr
adiabaticorvertical(the two coincide for an atom).- ionization_energy_sourcestr
The dataset key.
- orbitalstr
The ionising orbital.
- orbital_lint or None
The orbital angular momentum of an atom’s valence shell (the
lof the ADK and PPT angular factor); None for a molecule.- orbital_mint
The magnetic quantum number of the orbital (along a molecule’s axis).
- structuredict of str to StructureCoefficients
The curated tabulations of the orbital’s coefficients, by name.
- default_structurestr or None
The name of the recommended tabulation, or None where none is published.
- polarizabilityfloat
Static electronic polarizability of the neutral, C m^2/V.
- polarizability_sigmafloat
Its one-sigma uncertainty, C m^2/V.
- polarizability_sourcestr
The model it is the static limit of.
- vertical_ionization_energyfloat or None
The vertical ionisation energy of a molecule, J, where it differs and is curated: the energy at the neutral’s geometry, which a tunnelling rate in the fixed-nuclei approximation sees (TC-444).
- vertical_ionization_energy_sourcestr
The dataset key, or an empty string.
- ion_polarizabilityfloat or None
Static polarizability of the cation, C m^2/V, where curated.
- ion_polarizability_sourcestr
The dataset key, or an empty string.
- barrier_suppression_alphafloat or None
Tong & Lin’s (2005) alpha, where tabulated.
- barrier_suppression_sourcestr
The dataset key, or an empty string.
- barrier_suppression_zhangtuple of float or None
Zhang, Lan & Lu’s (2014) a1, a2, a3: the rate is
W_ADK exp(a1 x^2 + a2 x + a3)withx = F / F_b(the sign of their eq. 8 corrected, TC-542).- barrier_suppression_zhang_sourcestr
The dataset key, or an empty string.
- effective_chargefloat or None
Talebpour, Yang & Chin’s (1999) effective charge of N2 or O2: a constant fitted within their PPT rate with l = m = 0, not a property of the molecule (for O2 fitted with I_p = 12.55 eV, TC-542).
- effective_charge_sourcestr
The dataset key, or an empty string.
- reasonsdict of str to str
Why each choice was made (from
ionisation.toml).
- property hartree_coefficient_squared: float#
The PPT and ADK
|C_{n* l*}|^2in the Hartree approximation.- Returns:
- float
hartree_coefficient_squared()atn*andl* = n* - 1.
- property kappa: float#
kappa = sqrt(2 I_p)in atomic units.- Returns:
- float
The decay constant of the orbital’s asymptotic tail, 1/a0.
- property l_star: float#
The effective orbital quantum number of ADK,
n* - 1(Ammosov, eq. 17).- Returns:
- float
n* - 1.
- property n_star: float#
The effective principal quantum number
Z / kappaof a singly charged ion.- Returns:
- float
1 / sqrt(2 I_p)withI_pin hartree.
- property polarizability_difference: float | None#
The neutral’s polarizability less the cation’s, C m^2/V.
In a static field
Feach state’s energy falls byalpha F^2 / 2, so the ionisation energy rises by(alpha_0 - alpha_+) F^2 / 2: the Stark shift of the PPT rate.- Returns:
- float or None
alpha_0 - alpha_+, or None where the cation’s is not curated.
- structure: Mapping[str, StructureCoefficients]#
- class optmat.gas.ionisation.StructureCoefficients(source, model, orbital, m, coefficients, normalisation, projections=<factory>)[source]#
Bases:
objectThe asymptotic coefficients of an ionising orbital, from one tabulation.
- Attributes:
- sourcestr
The curated dataset’s key.
- modelstr
The theory the coefficients belong to (
moadk,adk,wfat).- orbitalstr
The orbital, as the source names it.
- mint
The magnetic quantum number along the molecular axis (an atom’s
m); 0 for a combination of several (a non-linear molecule).- coefficientsdict of int to float
C_lby partial wavel, as printed (signs kept). For a combination of datasets (a non-linear molecule), the root ofpartial_wave_squares: what the average over orientations needs, not the coefficients of an aligned molecule.- normalisationstr
The source’s definition of the coefficients.
- projectionsdict of (int, int) to complex
C_lmby(l, m)and orbital index, as printed: the real part the value, the imaginary part the dataset’simaginarycolumn where it has one. Keys are(orbital, l, m), the orbitals numbered in the order given.
- property partial_wave_squares: dict[int, float]#
The sum over
mof \(|C_{lm}|^2\) perl, averaged over orbitals.By the orthogonality of the rotation matrices, the average over orientations of the structure factor depends on the coefficients only through these sums (
optmat.gas.molecular_ionisation_rates.isotropic_structure_factors()). The orbitals of a degenerate shell are rotations of one another and have the same sums; they are averaged, and their number is part of the count of electrons.- Returns:
- dict of int to float
\(\langle \sum_m |C_{lm}|^2 \rangle\) by
l.
- optmat.gas.ionisation.adk_coefficient_squared(n_star, l_star)[source]#
Return the Stirling form of
|C_{n* l*}|^2(Ammosov’s eq. 20, corrected).Stirling’s formula for the two Gamma functions of eq. (19) gives
(4 e^2 / (n*^2 - l*^2))^n* ((n* - l*) / (n* + l*))^(l* + 1/2) / (2 pi n*). Ammosov, Delone & Krainov print eq. (20) with4 efor4 e^2and the ratio inverted,(n* + l*) / (n* - l*): as printed it contradicts both their eq. (19) and, atl* = 0, their eq. (11) (TC-441).- Parameters:
- n_starfloat
Effective principal quantum number, > 0.
- l_starfloat
Effective orbital quantum number,
|l*| < n*.
- Returns:
- float
The corrected eq. (20).
Examples
At
l* = 0it is their eq. (11) squared,(2 e / n*)^(2 n*) / (2 pi n*):>>> f"{adk_coefficient_squared(1.0, 0.0):.4f}" '4.7040'
- optmat.gas.ionisation.combined_structure_coefficients(tabulation)[source]#
Read the structure coefficients of an orbital given in several datasets.
A non-linear molecule’s orbital has coefficients at several
mfor eachl, and a degenerate shell several orbitals: one dataset per orbital andm(the parameterorbitalnaming the orbital). The result keeps every coefficient inStructureCoefficients.projections; itscoefficientsare the roots ofStructureCoefficients.partial_wave_squares.- Parameters:
- tabulationsequence of Dataset
tunnelling_structure_coefficientdatasets of one source.
- Returns:
- StructureCoefficients
The combination.
- Raises:
- DataError
If a dataset holds another quantity, or two hold the same orbital and
m.
- optmat.gas.ionisation.electronic_static_polarizability(gas)[source]#
Return the static electronic polarizability of a gas from its fitted model.
The fitted model’s terms are the electronic oscillator strengths, then the fixed infrared (vibrational) bands and the magnetic term. The electronic static limit is the sum of the fitted terms’
f_i / E_i^2alone: in an optical field the nuclei do not follow, so a Stark shift sees the electronic polarizability (TC-441).- Parameters:
- gasGas or str
The gas.
- Returns:
- tuple of (float, float, str)
The polarizability and its one-sigma uncertainty (Birge-scaled), C m^2/V, and the model’s name.
- optmat.gas.ionisation.hartree_coefficient_squared(n_star, l_star)[source]#
Return the asymptotic coefficient
|C_{n* l*}|^2of the ADK and PPT rates.Ammosov, Delone & Krainov (1986), eq. (19): the Coulomb asymptotic wave function with the effective quantum numbers in place of
nandl.- Parameters:
- n_starfloat
Effective principal quantum number
Z / sqrt(2 I_p), > 0.- l_starfloat
Effective orbital quantum number,
n* - 1in ADK’s choice.
- Returns:
- float
2^(2 n*) / (n* Gamma(n* + l* + 1) Gamma(n* - l*)).
Examples
Hydrogen (
n* = 1,l* = 0) gives 4, the square ofC_0 = 2:>>> hartree_coefficient_squared(1.0, 0.0) 4.0
- optmat.gas.ionisation.ionisation_parameters(gas)[source]#
Return the curated ionisation parameters of a gas.
- Parameters:
- gasGas or str
The gas.
- Returns:
- IonisationParameters
Its parameters, each with its source.
- Raises:
- DataError
If the gas has no ionisation parameters.
- optmat.gas.ionisation.structure_coefficients(dataset)[source]#
Read one tabulation of structure coefficients.
- Parameters:
- datasetDataset
A
tunnelling_structure_coefficientdataset, one row per partial wave.
- Returns:
- StructureCoefficients
The coefficients by
l.
- Raises:
- DataError
If the dataset holds another quantity or a row is not an integer
l.