optmat.gas.euv#
Build the complex polarizability from photoabsorption (the extreme ultraviolet).
Above its first resonance an atom absorbs, and its polarizability is complex. Both parts follow from the dipole oscillator-strength distribution, the discrete lines \((E_i, f_i)\) and the continuum density \(g(E) = \mathrm{d}f/\mathrm{d}E\) above the ionisation threshold \(I\):
in atomic units (the Kramers-Kronig pair of the causal response; the lines contribute delta functions to the imaginary part, which are left out). The continuum is measured as a photoionisation cross section, \(\sigma = (\pi e^2\hbar/2\varepsilon_0 m_e c) \,g(E)\), 109.76 Mb per eV-1. The same distribution gives the dipole sums \(S(k) = \sum_i f_i E_i^k + \int g(E) E^k\,\mathrm{d}E\): the Thomas-Reiche-Kuhn sum \(S(0)\) is the number of electrons and \(S(-2)\) the static polarizability, which test the data.
The principal value is taken by subtracting \(g(\omega)\) from the integrand, whose remainder is regular at \(E = \omega\), and adding \(g(\omega)\,\mathcal{P}\!\int_I^{E_\mathrm{max}} \mathrm{d}E/(E^2-\omega^2) = (g(\omega)/2\omega) \ln[(E_\mathrm{max}-\omega)(I+\omega)/((E_\mathrm{max}+\omega) (\omega-I))]\) analytically. Beyond the last tabulated energy the continuum falls as \(E^{-7/2}\), the nonrelativistic asymptote.
The refractive index of the dilute gas is \(n = 1 + N\alpha/2\varepsilon_0\): above threshold \(\mathrm{Re}\,n - 1\) becomes negative and \(\mathrm{Im}\,n\) is the absorption index. For comparison, Henke’s atomic scattering factors give \(\alpha = -(f_1 - i f_2)/\omega^2\) in atomic units: Henke et al. write \(n = 1 - \delta - i\beta\) with \(\beta \propto f_2 > 0\), the opposite sign convention to the package’s \(\mathrm{Im}\,n > 0\) for absorption.
Module Attributes
Electronvolts per hartree. |
|
Photoionisation cross section (Mb) per unit |
Functions
|
Scale the continuum below an energy so that one dipole sum takes a target value. |
|
Build a gas's complex-index model from |
|
Return the ground-state J = 1 lines with oscillator strengths from the NIST file. |
Classes
|
A constrained oscillator-strength distribution as a complex-index model. |
|
A dipole oscillator-strength distribution: discrete lines and a continuum. |
- class optmat.gas.euv.ComplexModel(gas, name, distribution, chi0_au=0.0, factor=1.0)[source]#
Bases:
objectA constrained oscillator-strength distribution as a complex-index model.
- Attributes:
- gasGas
The species.
- namestr
euv/<gas>.- distributionOscillatorDistribution
The constrained distribution.
- chi0_aufloat
The magnetic susceptibility added to the electric polarizability.
- factorfloat
The scale applied to the measured continuum by the constraint.
- distribution: OscillatorDistribution#
- polarizability_au(omega)[source]#
Return the complex refractive polarizability, atomic units.
- Parameters:
- omeganumpy.ndarray
Photon energies, hartree.
- Returns:
- numpy.ndarray
Re alpha + chi_0 + i Im alpha(complex).
- refractive_index(wavelength, state=State(pressure=101325.0, temperature=273.15))[source]#
Return the complex refractive index at a state (Lorentz-Lorenz).
- Parameters:
- wavelengtharray_like or float
Vacuum wavelength, m.
- stateState, optional
Pressure and temperature; 0 degrees C and 1 atm by default.
- Returns:
- numpy.ndarray
n(complex;Im n > 0is absorption), the shape ofwavelength.
- optmat.gas.euv.MB_PER_INVERSE_EV: Final = 109.76098670810207#
Photoionisation cross section (Mb) per unit
df/dE(1/eV), 109.761:pi e^2 hbar / (2 eps0 m_e c), per eV and in units of 1e-22 m^2.
- class optmat.gas.euv.OscillatorDistribution(gas, name, line_energies, line_strengths, continuum_energies, continuum_density)[source]#
Bases:
objectA dipole oscillator-strength distribution: discrete lines and a continuum.
- Attributes:
- gasGas
The species.
- namestr
What the distribution is built from.
- line_energiesnumpy.ndarray
Discrete line energies, hartree.
- line_strengthsnumpy.ndarray
Their oscillator strengths.
- continuum_energiesnumpy.ndarray
Photon energies of the continuum samples, hartree, increasing from the threshold.
- continuum_densitynumpy.ndarray
df/dEat those energies, per hartree.
- complex_polarizability_au(omega)[source]#
Return the real and imaginary parts of the polarizability.
- Parameters:
- omeganumpy.ndarray
Photon energies, hartree; exactly at a discrete line the real part is infinite.
- Returns:
- tuple of numpy.ndarray
Re alphaandIm alpha, atomic units.
- continuum_density: Float[ndarray, 'n_continuum']#
- continuum_energies: Float[ndarray, 'n_continuum']#
- line_energies: Float[ndarray, 'n_lines']#
- line_strengths: Float[ndarray, 'n_lines']#
- optmat.gas.euv.constrained(distribution, region_max, target)[source]#
Scale the continuum below an energy so that one dipole sum takes a target value.
Typically the measured continuum near threshold is scaled, within its stated uncertainty, to the static polarizability
S(-2)of an ab initio calculation, the simplest of Kumar and Meath’s constrained distributions; the higher-energy data are left as they are, and the Thomas-Reiche-Kuhn sumS(0)is kept as a check.- Parameters:
- distributionOscillatorDistribution
The measured distribution.
- region_maxfloat
The continuum below this energy (hartree) is scaled.
- targettuple of float
(k, value): the sumS(k)to meet.
- Returns:
- tuple
The scaled distribution and the factor applied.
- Raises:
- DataError
If the target does not respond to scaling, or a secant step requires a non-positive or non-finite continuum scale. The local iteration is intended for adjustments within the measured uncertainty, not arbitrary targets.
- optmat.gas.euv.euv_model(gas)[source]#
Build a gas’s complex-index model from
data/gas/euv/<gas>.toml.- Parameters:
- gasGas or str
The species.
- Returns:
- ComplexModel
The constrained distribution as a model.
- Raises:
- DataError
If the configuration is malformed or refers to missing data.
- optmat.gas.euv.nist_resonance_lines(gas)[source]#
Return the ground-state J = 1 lines with oscillator strengths from the NIST file.
- Parameters:
- gasGas
A noble gas with a
data/external/nist_asd/<gas>_I_lines.tsvfile.
- Returns:
- list of tuple
(energy in hartree, f, upper configuration), by increasing energy.