The Raman response#
Read Raman lines for the line parameters and Third-order conventions for the electronic/delayed split. This chapter gives the tensor kernel and its propagation interfaces; Raman validation and limitations gives the comparisons and open questions. The Quick start is the introductory route.
The delayed third-order response of the molecular gases and of fused silica, as a
function of the delay and of the frequency, ready for a propagation code to sample:
optmat.gas.raman_response and optmat.solid.raman_response. The gases’
responses are built from the lines of Raman lines; silica’s from Hollenbeck &
Cantrell’s modes and the Raman fraction of the Kerr fit of Fused silica. The checks
against measurements are in optmat.gas.raman_response_validation and
optmat.solid.raman_response_validation.
import numpy as np
from optmat.gas.linewidths import AMAGAT
from optmat.gas.raman_response import raman_response
t = np.linspace(0.0, 10e-12, 1001) # delay, s
omega = 2 * np.pi * np.linspace(0.1e12, 5e12, 50) # rad/s
densities = np.array([0.5, 1.0, 2.0]) * AMAGAT # m^-3
air = raman_response("dry air", 295.0, wavelength=800e-9)
air.response(t, 1.0 * AMAGAT) # h(t), m^5 V^-2 s^-1, t in s
air.spectrum(omega, 1.0 * AMAGAT, "b") # H(omega), or one of its parts
air.decay_rates(densities), air.frequencies(densities) # (lines, densities), cheap
air.frequency, air.isotropic, air.anisotropic, air.damping_group # the lines
air.density_range, air.sources, air.reasons
from optmat.solid.raman_response import silica_raman_response
silica = silica_raman_response() # Hollenbeck & Cantrell, the Kerr fit's f_R
silica.response(t), silica.spectrum(omega) # normalised: integral 1, H(0) = 1
silica.raman_coefficient(1030e-9), silica.electronic_susceptibility(1030e-9)
shift = 2 * np.pi * 13.2e12 # the gain peak, 440 cm^-1, rad/s
silica.gain(1030e-9, shift) # m/W
The convention#
For a field linearly polarised along \(x\), the Raman polarisation of a gas of number density \(N\) is (TC-442, TC-685)
with \(A_k\) in m⁵ V⁻² s⁻¹ per molecule of the gas (a mixture’s lines carry their constituent’s mole fraction) and \(\Gamma_k = \pi\,\Delta\nu_k\), \(\Delta\nu_k\) the FWHM in Hz. The transform \(H(\omega) = \int_0^\infty h(\tau)\, e^{i\omega\tau} d\tau\) is analytic, \(\sum_k A_k\Omega_k / (\Omega_k^2 + \Gamma_k^2 - \omega^2 - 2i\Gamma_k\omega)\), and its imaginary part is the Stokes gain: \(g = \omega_s N \operatorname{Im}H(\Omega) / (c^2\varepsilon_0)\) for pump and Stokes polarised alike.
The tensor form. For any polarisation, following Hellwarth,
and \(h = a + b\). Each line has an isotropic share, from the mean polarizability, which
enters \(a\) only, and an anisotropic share \(h_2\), from the anisotropy, for which
\(a = -h_2/2\) and \(b = 3h_2/2\): the change of the anisotropic polarizability follows the
traceless part of \(\mathbf{E}\mathbf{E}\). A weak probe polarised across the pump sees
\(a\): \(-1/2\) of the parallel rotational response, and all of the isotropic vibrational
one (component_amplitudes()).
The rotational S lines are anisotropic.
A vibrational Q(J) line’s anisotropic share is \((4/45)\, b_{J,J}\, \gamma'^2 P_J / (\hbar\varepsilon_0)\), with the Placzek-Teller coefficient \(b_{J,J} = J(J+1) / [(2J-1)(2J+3)]\) (
placzek_teller_q(), checked by quadrature). The transition anisotropy \(\gamma'\) is Hunt et al.’s per J for H2 and D2, and elsewhere follows from the Q branch’s depolarisation ratio \(\rho = 3b\gamma'^2 / (45\bar\alpha'^2 + 4b\gamma'^2)\) (TC-686).The vibrational O and S branches (\(\Delta J = \mp 2\)), anisotropic only, are left out: they would add 8 % of N2’s Q branch, 19 % of O2’s and 3 % of H2’s and D2’s, spread over some 100 cm⁻¹ about the band.
The gases#
The lines are those of Raman lines: per J, with their own strengths and widths, the Q branches resolved (TC-541, TC-542). Every curated width law has the form \(\Delta\nu = c + d/n + \beta n\) at a given temperature and composition (\(n\) in amagat), so the response keeps the three coefficients of each line and its density dependence costs nothing to evaluate (TC-687). The amplitudes depend on the temperature (the populations) and the pump wavelength (the vibrational strengths’ dispersion, TC-542) only.
Gas |
S lines |
Q lines |
Damping groups |
Densities (amagat) |
Temperatures (K) |
Anisotropic Q share |
|---|---|---|---|---|---|---|
N2 |
53 |
53 |
43 |
0.054-2.09 |
293-300 |
2.9% |
O2 |
32 |
32 |
38 |
0.0345-4.2 |
290-1322 |
6.7% |
H2 |
10 |
10 |
3 |
0.943-3.29e+03 |
77-300 |
2.0% |
D2 |
15 |
15 |
12 |
0.616-1.02e+03 |
291-298 |
1.5% |
CH4 |
0 |
1 |
1 |
no limit |
290-300 |
0.0% |
SF6 |
0 |
1 |
1 |
no limit |
290-300 |
0.0% |
CO2 |
61 |
2 |
8 |
0.0108-13.1 |
283-300 |
4.7% |
N2O |
0 |
2 |
2 |
above 0.0205 |
290-300 |
0.0% |
dry air |
85 |
85 |
82 |
0.054-2.09 |
293-300 |
3.6% |
Damping groups. Lines with the same group share their width and shift at every density: a propagation code can sum them into one damped kernel with no approximation. H2’s Q lines are one group (one width law for every Q(J)); N2’s S lines outside Herring et al.’s S(2)-S(14) share the end values’ widths.
The composition. A mixture’s widths use each constituent’s true collision partners: N2’s lines in air are broadened by N2, O2 and (as O2) Ar, not by “the total density”. Dry air is CIPM-2007’s N2, O2 and Ar, renormalised: CO2 would add 0.3 % to the rotational response (TC-689).
The densities (TC-688) between which the lines are independent collisional Lorentzians, found for each band’s strongest line:
below, molecular motion sets the width. Where a line has a Dicke term (H2, D2), the diffusion law holds above Herring et al.’s cutoff \(\rho_c = 3.33\, d / \Delta\nu_D\), with \(\Delta\nu_D\) the Doppler width for forward scattering (their Eqs. (3) and (4)); below it, \(d/n\) is capped at \(\Delta\nu_D\), a Lorentzian stand-in for the Doppler limit. Otherwise the limit is where the collisional width falls to \(\Delta\nu_D\);
above, the width of the strongest line reaches the spacing to its neighbour: the lines overlap, and their mixing (the collisional narrowing of a Q branch) is not modelled (TC-527). For N2 this is 2.1 amagat, where Koszykowski et al. see the branch begin to collapse.
Line shifts. H2’s Q lines move by \(-96\) MHz/amagat at 298 K (Bischel & Dyer’s Eq. (4)), 1.85 times the collisional width’s coefficient, and the response follows them (
frequencies()). The other curated shifts are at most 5 % of their widths’ coefficients and are not used.The temperatures are those of each band’s width measurements; outside them the response warns when it is built.
Fused silica#
A glass’s response is a normalised shape and a size: the Raman share \(f_R\) of the long-pulse \(n_2\), as the Kerr fit defines it (TC-393). For an envelope, \(\Delta n = n_2[(1-f_R) I + f_R \int h_R(\tau) I(t-\tau)\, d\tau]\). For a real field, in the gases’ convention,
because a kernel slower than the optical cycle follows only the slowly varying half of \(E^2\), while the instantaneous term also has its \(3\omega\) part. The Raman term of the field therefore carries 2/3 of the envelope’s share: Blow & Wood’s \(\alpha = 0.7\) is their Kerr weight, and their field-level Raman share \(1 - \alpha = 0.3\) on \(E^2\) is an envelope Raman share of 0.222 of \(n_2\) (their Eqs. (2) and (8); TC-692). The gain is \(g(\Omega) = 2\omega_s n_2 f_R \operatorname{Im}H_R(\Omega)/c\).
Model |
f_R |
Paired with the Kerr fit |
Isotropic and anisotropic parts |
Gain peak (cm-1) |
Peak gain at 526 nm (1e-11 cm/W) |
at 795.5 nm |
at 1064 nm |
|---|---|---|---|---|---|---|---|
hollenbeck_2002 |
0.219 |
yes |
no |
440 |
1.91 |
1.15 |
0.83 |
lin_2006 |
0.245 |
no |
yes |
435 |
1.91 |
1.16 |
0.83 |
blow_1989 |
0.222 |
no |
no |
436 |
2.10 |
1.27 |
0.91 |
hollenbeck_2002, the default. Hollenbeck & Cantrell’s 13 modes, fitted to both the measured gain spectrum and the measured response. Table 1 is used as printed with its footnote’s conversions, and normalised analytically (TC-382, TC-691). Paired with the Kerr fit: its \(f_R\) is the one that fit found with this shape, so the electronic part and the Raman part add up to the fitted \(n_2\). It is copolarised only.lin_2006. Lin & Agrawal’s isotropic damped oscillator and anisotropic Boson peak: the one model with both parts of the tensor. With their \(n_2 = 2.6\times 10^{-20}\) m²/W and \(f_R = 0.245\) it reproduces their peak gains, 1.2e-11 cm/W at 795.5 nm and 1.81e-11 cm/W at 526 nm, to 0.3 % and 0.6 %, once their \(\omega_0\) (the pump) stands in for the Stokes frequency. Their \(f_R\) is not the Kerr fit’s.blow_1989. The single oscillator, 12.2 and 32 fs, with its share 0.222.
Using it in a propagation code#
A propagation code samples the response once, when it sets up a run, as it builds its ionisation rate tables. The responses here are functions of continuous delay and frequency. The grid, the taper, the padding and any tabulation belong to the code.
The status first.
raman_response_status(gas)gives the status and reason the response would have, from the curated choices alone, without computing the lines. It returns None where no constituent is Raman-active: the noble gases, alone or mixed. A molecule without curated choices, and CIPM-2007’s full air, are refused, asraman_responserefuses them. Collision partners are not checked: a mixture of CO2 with N2, whose broadening coefficients by one another are not curated, has a status here and is refused byraman_response(TC-840).The cost. The response of a gas is a sum of lines, and a code that convolves by FFT pays for them only when it builds the kernel’s spectrum: once for a constant density. Along a density gradient each line’s decay rate changes, and rebuilding the kernel costs one exponential per line and sample. With per-J widths the lines are many: 106 for N2 and 170 for air. At \(N = 2^{14}\) that is about 7 ms per rebuild for N2 against 0.2 ms for one convolution (numpy, one core). The convolution itself costs the same whatever the number of lines.
Grouping. Lines of one damping group can be summed before damping, exactly.
Low rank. Over the densities a run visits, the family of kernels is close to a sum of a few separable terms, \(H(\omega; n) \approx \sum_r c_r(n)\, U_r(\omega)\). With the \(U_r\) precomputed, a rebuild is \(r\) multiply-adds per sample, with no exponentials and no FFT. The table gives the smallest \(r\) at which the largest error on a 64-density grid, over the kernel’s spectrum on a propagation-like window, falls below each fraction of the kernel’s largest value:
Gas |
Densities (amagat) |
Window |
Lines |
Damping groups |
Rank at 1e-03 |
Rank at 1e-04 |
Rank at 1e-06 |
|---|---|---|---|---|---|---|---|
N2 |
0.5-2 |
131 ps at 4 fs |
106 |
43 |
3 |
4 |
5 |
N2 |
0.1-10 |
131 ps at 4 fs |
106 |
43 |
5 |
6 |
9 |
O2 |
0.1-10 |
131 ps at 4 fs |
64 |
38 |
5 |
6 |
8 |
dry air |
0.1-10 |
131 ps at 4 fs |
170 |
82 |
5 |
6 |
8 |
H2 |
1-30 |
66 ps at 2 fs |
20 |
3 |
4 |
5 |
6 |
D2 |
1-30 |
66 ps at 2 fs |
30 |
12 |
4 |
4 |
5 |
The damping groups#
response.groups() gives each damping group once, in SI, with the conversions written
in optmat (OEP 1, sections 4.5 and 6.7). A group is a set of lines that share their
width law and shift exactly, \((c, d, \beta, \Delta\nu_D, s)\), and its share of the
response is
with \(N\) the total number density in m⁻³, \(\gamma_c = \pi c\), \(\gamma_d = \pi d
N_\text{amg}\), \(\gamma_D = \pi \Delta\nu_D\), \(\gamma_\beta = \pi\beta/N_\text{amg}\) and
\(\sigma_g = 2\pi s/N_\text{amg}\). The groups’ responses sum to response exactly.
Where \(\sigma_g = 0\) the row of amplitudes and frequencies is fixed and only the decay
depends on the density. The one group with a shift is H2’s Q branch
(group.shifted), so a response of H2 along a density gradient is exact only at a
fixed density.
decay_rate(N) is defined for \(N \ge 0\). At \(N = 0\) it is the law’s limit: the capped
Dicke term tends to its cap, so \(\Gamma_g(0) = \gamma_c + \gamma_D\) for a group with a
Dicke term and \(\gamma_c\) otherwise. At 295 K that limit is zero for every line of N2,
O2, dry air, N2O and CO2 and some of D2’s, and finite for H2 (at least 153 MHz in
\(\Gamma/\pi\)), CH4 and SF6. The group view does not warn below the validated
density_range; a code declares the densities it will use once, with
check_densities(N), which does.
Each line has a stable identifier, line_id: species/band/branch/J, with the band’s
short curated key (rotation, v1, nu1, nu3, fermi_1285, fermi_1388) and -
for an unresolved band. The identifiers are unique and are kept in a snapshot
(tests/data/raman_line_ids.json), so one changes only deliberately.
h2 = raman_response("H2", 295.0)
q = next(g for g in h2.groups() if g.shifted)
assert q.line_ids[0] == "H2/v1/Q/0"
rates = q.decay_rate(np.array([0.0, 1.0]) * AMAGAT) # 1/s
assert rates[0] > 0
h2.check_densities(np.array([1.0, 10.0]) * AMAGAT)
The two tensor parts#
A code working in a trace and traceless basis needs each part written out. The isotropic part is \(R^{(0)}_{ijkl} = h_0\,\delta_{ij}\delta_{kl}\). The anisotropic part is \(R^{(2)}_{ijkl} = h_2\left[\tfrac34(\delta_{ik}\delta_{jl}+\delta_{il}\delta_{jk}) - \tfrac12\delta_{ij}\delta_{kl}\right]\), which is \(a = -h_2/2\), \(b = 3h_2/2\) in the convention above. The two elements tell them apart:
copolarised, a probe along \(x\) after a pump along \(x\): \(R_{xxxx} = a + b = h_0 + h_2\) (
component="parallel");cross-polarised, a probe along \(x\) after a pump along \(y\): \(R_{xxyy} = a = h_0 - \tfrac12 h_2\) (
component="a").
The weights in the transverse trace and traceless basis, \((1, 0)\) for an isotropic row and \((\tfrac14, \tfrac34)\) for a rank-two row, are this decomposition for a transverse drive \(Q\) in three dimensions. \(\tfrac12 h_2 (3Q - \operatorname{tr}Q\, I)\) has trace part \(\tfrac14 h_2 \operatorname{tr}Q\) and traceless part \(\tfrac32 h_2 (Q - \tfrac12\operatorname{tr}Q\, I)\), which gives \(h_2(\tfrac14 + \tfrac34) = h_2\) copolarised and \(h_2(\tfrac14 - \tfrac34) = -\tfrac12 h_2\) cross-polarised.
iso, aniso = air.isotropic, air.anisotropic
assert np.allclose(
air.component_amplitudes("parallel"), (iso + aniso / 4) + 3 * aniso / 4
)
assert np.allclose(air.component_amplitudes("a"), (iso + aniso / 4) - 3 * aniso / 4)
See Raman validation and limitations for comparisons with measured quantities.