optmat.gas.two_photon_bound#
The bound two-photon levels of the noble gases (OEP 6, Phase 2a: curation only).
Below half the ionisation energy, two photons of a field can excite a noble gas’s
ground state to an even-parity level. This module states what is curated about those
levels, per gas (two_photon_bound_levels()):
the even levels with \(J = 0, 1, 2\) below the ionisation energy, from the NIST level lists held as returned (
nist_asd_2026; helium’s singlets only). For one linear polarisation and equal photons, \(J = 0\) and 2 are reached; \(J = 1\) only with unequal photons or another polarisation;each level’s curated two-photon strengths, calculated or measured, in one convention: \(\delta^{TP}\) per level (summed over \(M_J\)), parallel linear polarisation, equal photons, in atomic units, and the frequency-integrated cross section
\[\sigma_0^{(2)} = 2\pi^3 \alpha^2 a_0^4\, \omega_\mathrm{au}^2\, \delta^{TP},\]with the line profile normalised in the two-photon angular frequency, for coherent light (TC-952). A measured \(\sigma_0^{(2)}\) is corrected for the photon statistics its source used;
each level’s curated photoionisation cross sections.
It is a record of facts with no evaluator. A line profile, the excited population and
the (2+1) ionisation that follows need the theory OEP 6 asks for in Q9, and are deferred
to its Phase 2b (TC-945). Helium’s and xenon’s strengths are checked against independent
values (assessment = "checked"). Neon’s, argon’s and krypton’s are "unresolved",
each with its reason.
Examples#
>>> xenon = two_photon_bound_levels("Xe")
>>> level = xenon.level("5p5.(2P*<3/2>).6p", "2[1/2]", 0)
>>> round(level.wavelength * 1e9, 2) # the exciting photon's vacuum wavelength, nm
249.63
>>> [(s.source, s.kind) for s in xenon.strengths_of(level)]
[('henriksson_2005', 'calculated'), ('kroll_1990', 'measured')]
Module Attributes
The version of the stored records' derivation. |
|
\(\sigma_0^{(2)} / (\omega_\mathrm{au}^2 \delta^{TP})\), m^4 (TC-952). |
Functions
|
Return the frequency-integrated cross section of a two-photon strength. |
Return what is curated about a noble gas's bound two-photon levels. |
Classes
|
An even level below the ionisation energy, as NIST lists it. |
|
A curated photoionisation cross section of an excited level. |
|
A curated two-photon strength of a level, in the canonical convention. |
|
The bound two-photon levels of a noble gas and what is curated about them. |
- optmat.gas.two_photon_bound.BOUND_DERIVATION_VERSION: Final = 1#
The version of the stored records’ derivation.
- class optmat.gas.two_photon_bound.BoundLevel(configuration, term, j, energy, printed, reach)[source]#
Bases:
objectAn even level below the ionisation energy, as NIST lists it.
- Attributes:
- configurationstr
NIST’s configuration, e.g.
"5p5.(2P*<3/2>).6p".- termstr
NIST’s term, e.g.
"2[1/2]".- jint
The total angular momentum.
- energyfloat
Above the ground level, J.
- printedstr
NIST’s level, cm^-1, as printed (with any brackets).
- reachstr
"linear"(J = 0, 2: reached by two equal, linearly polarised photons) or"other"(J = 1: only with unequal photons or another polarisation).
- class optmat.gas.two_photon_bound.BoundPhotoionisation(level, unassigned, dataset, source, omega, sigma, use)[source]#
Bases:
objectA curated photoionisation cross section of an excited level.
- Attributes:
- levelstr
The level’s key, or empty where unassigned.
- unassignedstr
Why it is not assigned, or empty.
- datasetstr
The curated dataset.
- sourcestr
The source record.
- omegatuple of float or None
The ionising photon’s angular frequency, rad/s; None where the source states none (a threshold value at an unstated energy).
- sigmatuple of float
The cross section, m^2.
- usestr
The dataset’s use.
- class optmat.gas.two_photon_bound.BoundStrength(level, unassigned, dataset, row, source, kind, delta, sigma0, convention, derived, reason)[source]#
Bases:
objectA curated two-photon strength of a level, in the canonical convention.
- Attributes:
- levelstr
The level’s key (
BoundLevel.key), or empty where unassigned.- unassignedstr
Why it is not assigned to a level, or empty.
- datasetstr
The curated dataset.
- rowstr
Its row.
- sourcestr
The source record.
- kindstr
"calculated"or"measured".- deltafloat or None
\(\delta^{TP}\) per level, a.u.: as printed, or derived from a cross section; None for an unassigned cross section.
- sigma0float or None
\(\sigma_0^{(2)}\), m^4, at the level’s NIST photon frequency; None where unassigned.
- conventionstr
How it was obtained:
"per_level","one_component"(times 4/3) or"sigma0".- derivedbool
True unless the stored quantity is as printed.
- reasonstr
Why this level.
- optmat.gas.two_photon_bound.SIGMA0_PER_DELTA: Final = 2.589493367193569e-44#
\(\sigma_0^{(2)} / (\omega_\mathrm{au}^2 \delta^{TP})\), m^4 (TC-952).
- class optmat.gas.two_photon_bound.TwoPhotonBoundLevels(gas, derivation_version, ionisation, levels, strengths, photoionisation, assessment, assessment_reason, input_digests=<factory>, *, status='user', status_reason='', modified=(), base='')[source]#
Bases:
IdentifiedThe bound two-photon levels of a noble gas and what is curated about them.
- Attributes:
- gasGas
The species.
- derivation_versionint
BOUND_DERIVATION_VERSIONwhen it was derived.- ionisationfloat
The ionisation energy, J.
- levelstuple of BoundLevel
The even J = 0, 1, 2 levels below it, by energy.
- strengthstuple of BoundStrength
The curated two-photon strengths.
- photoionisationtuple of BoundPhotoionisation
The curated photoionisation cross sections of the levels.
- assessmentstr
"checked"or"unresolved".- assessment_reasonstr
Why.
- input_digestsMapping of str to str
SHA-256 digests of what it was derived from.
- level(configuration, term, j)[source]#
Return a listed level.
- Parameters:
- configurationstr
NIST’s configuration.
- termstr
NIST’s term.
- jint
The total angular momentum.
- Returns:
- BoundLevel
The level.
- Raises:
- DataError
If it is not listed.
- levels: tuple[BoundLevel, ...]#
- photoionisation: tuple[BoundPhotoionisation, ...]#
- photoionisation_of(level)[source]#
Return the photoionisation cross sections assigned to a level.
- Parameters:
- levelBoundLevel
A listed level.
- Returns:
- tuple of BoundPhotoionisation
Its cross sections.
- strengths: tuple[BoundStrength, ...]#
- optmat.gas.two_photon_bound.sigma0_from_delta(delta, omega)[source]#
Return the frequency-integrated cross section of a two-photon strength.
- Parameters:
- deltafloat
\(\delta^{TP}\) per level, parallel linear polarisation, equal photons, atomic units.
- omegafloat
The photon’s angular frequency, rad/s: half the level’s over hbar.
- Returns:
- float
\(\sigma_0^{(2)} = 2\pi^3\alpha^2 a_0^4 \omega_\mathrm{au}^2 \delta\), m^4, the profile normalised in the two-photon angular frequency, coherent light (TC-952).
Examples
>>> f"{sigma0_from_delta(1.0, AU_ANGULAR_FREQUENCY):.5e}" '2.58949e-44'
- optmat.gas.two_photon_bound.two_photon_bound_levels(gas)[source]#
Return what is curated about a noble gas’s bound two-photon levels.
- Parameters:
- gasGas or str
He, Ne, Ar, Kr or Xe.
- Returns:
- TwoPhotonBoundLevels
The record.
- Raises:
- UnavailableModelError
For any other gas.
Examples
>>> two_photon_bound_levels("He").assessment 'checked'