LineStrength¶
Calculate Raman linestrength for common gas species.
-
class
carspy.line_strength.
LineStrength
(species='N2', custom_dict=None)[source]¶ A collection of methods concerning line strength in CARS Spectrum.
Input molecular constants.
- Parameters
- speciesstr, optional
Specify the molecule, by default ‘N2’. Currently only supports ‘N2’.
- custom_dictdict, optional
Specify custom molecular constants, by default None. This can be used to modify default molecular constants and/or add custom species. The dictionary should contain all the necessary keys as in the default:
['we', 'wx', 'wy', 'wz', 'Be', 'De', 'alpha_e', 'beta_e', 'gamma_e', 'H0', 'He', 'mu', 'MW', 'Const_Raman', 'G/A']
-
doppler_lw
(temperature, nu_0=2300.0)[source]¶ Calculate the Doppler broadening FWHM of the transitions.
Warning
This simple implementation for Doppler broadening may not be accurate enough for Dualpump- or Wide-CARS.
- Parameters
- temperaturefloat
Translational (equilibrium) temperature of the measurement volume.
- nu_0float, optional
Transition center frequency, by default 2300 in [\(\mathrm{cm}^{-1}\)]. It should actually be caclulated with
line_pos
for each single rotational transition. But to speed up computation, a single value is assumed for the entire CARS spectrum.
- Returns
- float
FWHM of the Doppler broadening
-
int_corr
(j, branch=0)[source]¶ Intensity corrections Q, S and O-branches.
Placzek-Teller coefficient.
Centrifugal distortion caused by vibration-rotation interaction.
Warning
The Herman-Wallis factor for centrifugal distortion may need to be updated. It seems the commonly used James-Klemperer expression (as used in this code) for Q-branch is not correct. This matters more for lighter molecules like H2. See [Mar07] for more details.
Note
It seems CARSFT [Pal89] has set cd_corr=1 for Q-branch transitions. Here the formula from NRC [PS88] is taken. This causes a relative intensity change in Q- vs O/S-braches. Since O/S-branches are significantly weaker around v=0-1, 1-2 transitions for N2 (~2330 \(\mathrm{cm}^{-1}\)), this difference is unlikely to raise any issue.
- Parameters
- jint
Rotational quantum number.
- branchint, optional
Q, S or O-branch with a value of 0, 2 or -2, by default 0.
- Returns
- pt_coeff, cd_corrfloat
Placzek-Teller coefficient and centrifugal distortion correction for the specific j-branch combination.
-
line_pos
(v, j, branch=0)[source]¶ Line position of anti-Stokes transitions.
Note
Validated against information from NRC Report TR-GD-013 (B21 Tabel B-1).
- Parameters
- vint
Vibrational quantum number
- jint
Rotational quantum number
- branch0, int, optional
Q, S or O-branch with a value of 0, 2 or -2
- Returns
- float
Line position in wavenumber cm^(-1) for the given species at specified ro-vibrational levels
-
pop_factor
(temperature, v, j, branch=0, **kwargs)[source]¶ Calculate population factor in the line intensity weight factor.
This is the population difference between the lower and upper states for the specified transition (v, j, branch) at the given temperature.
Note
Validated against information from NRC Report TR-GD-013 (D4).
- Parameters
- temperaturefloat
Translational (equilibrium) temperature of the measurement volume.
- vint
Vibrational quantum number.
- jint or array of int
Rotational quantum number. Recommended here to use an array if multiple j-levels need to be computed. This reduces the necessity of extra for-loops for j when synthesizing spectrum.
- branchint, optional
Q, S or O-branch with a value of 0, 2 or -2, by default 0.
- Returns
- float
Fractional population difference between the lower and upper states.
- Other Parameters
- All keyword arguments from ``pop_frac``.
-
pop_frac
(temperature, v, j, del_Tv=0.0, vs=20, js=100)[source]¶ Calculate ro-vibrational partition functions.
- Parameters
- temperaturefloat
Translational (equilibrium) temperature of the measurement volume in [K].
- vint
Vibrational quantum number.
- jint
Rotational quantum number.
- del_Tvfloat
The amount Tv exceeds Tr, by default 0.0.This is only used when stimulated Raman process competes with CARS and Tv becomes obviously higher than Tr.
- vsint, optional
Total number of vibrational levels to be considered, by default 20.
- jsint, optional
Total number of rotational levels to be considered, by default 100.
- Returns
- fvjfloat
Population fraction of (v, j) state at the given temperature.
-
term_values
(v, j, mode='sum')[source]¶ Calculate the term values for an anharmonic vibrating rotor.
- Parameters
- vint
Vibrational quantum number.
- jint
Rotational quantum number.
- modestr, optional
Determine what to return, by default ‘sum’:
‘sum’ returns the total term values Gv + Fv
‘Gv’ returns only Gv
‘Fv’ returns only Fv
- Returns
- float
Term values for the specified ro-vibrational level depending on the mode selected.
-
carspy.line_strength.
linewidth_isolated
(pressure, temperature, j)[source]¶ Temperature-dependent Raman linewidths of N2 from [FMR82].
Deprecated
Use the MEG to calculate rate matrix and isolated linewidth.
- Parameters
- pressurefloat
Pressure in [bar].
- temperaturefloat
Temperature in [K].
- jint
Rotational quantum number.
- Returns
- Gamma_jfloat
Raman linewidth (FWHM) in [\(\mathrm{cm}^{-1}\)].