Isotopologues
In the previous section, we successfully assigned and modeled the rotational spectrum of the main isotopologue of OCS. Now, we will examine which other isotopologues are present in the spectrum. Isotopologues are very interesting because they are excellent tracers of isotope ratios (e.g., for astronomers) and can be used to determine a molecule's structure. We will start with a short exercise. First, research the natural abundances and masses of the different oxygen, carbon, and sulfur isotopes. Then, calculate the natural abundances of the resulting isotopologues and estimate their rotational constants $B$ in the same way that we did for the main isotopologue previously.
Solution
import numpy as np
r_CO = 1.1308051672090703e-10
r_CS = 1.5375286554975936e-10
m0 = 1.66054e-27
h = 6.626e-34
O_isotopes = [[16, 0.998, 15.994914619257],
[17, 0.00038, 16.999131755953],
[18, 0.00205, 17.999159612136]]
C_isotopes = [[12, 0.989, 12],
[13, 0.0106, 13.003354835336]]
S_isotopes = [[32, 0.948, 31.9720711744],
[33, 0.0076, 32.9714589099],
[34, 0.0437, 33.96786701],
[36, 0.0002, 35.96708070]]
Bs = []
for nO, pO, mO in O_isotopes:
for nC, pC, mC in C_isotopes:
for nS, pS, mS in S_isotopes:
masses = np.array((mO, mC, mS))
positions = np.array((0, r_CO, r_CO + r_CS))
c = np.sum(masses * positions) / np.sum(masses)
positions -= c
I = np.sum(masses * m0 * positions**2)
B = h / (8 * np.pi**2 * I)
abundance = pO * pC * pS * 100
Bs.append(((nO, nC, nS), B/1E6, abundance))
Bs = sorted(Bs, key=lambda x: x[-1], reverse=True)
output = ['| mO | mC | mS | B [MHz] | Abundance|', '|----|----|----|---------|----------|']
for (nO, nC, nS), B, percentage in Bs:
output.append(f'| {nO} | {nC} | {nS} | {B:.2f} | {percentage:7.4f}% |')
print("\n".join(output))
The results are summarized in the following table:
| mO | mC | mS | B [MHz] | Abundance |
|---|---|---|---|---|
| 16 | 12 | 32 | 6322.22 | 93.5697% |
| 16 | 12 | 34 | 6167.36 | 4.3133% |
| 16 | 13 | 32 | 6301.34 | 1.0029% |
| 16 | 12 | 33 | 6242.45 | 0.7501% |
| 18 | 12 | 32 | 5930.97 | 0.1922% |
| 16 | 13 | 34 | 6144.89 | 0.0462% |
| 17 | 12 | 32 | 6116.73 | 0.0356% |
| 16 | 12 | 36 | 6028.68 | 0.0197% |
| 18 | 12 | 34 | 5780.04 | 0.0089% |
| 16 | 13 | 33 | 6220.75 | 0.0080% |
| 18 | 13 | 32 | 5916.16 | 0.0021% |
| 17 | 12 | 34 | 5963.94 | 0.0016% |
| 18 | 12 | 33 | 5853.22 | 0.0015% |
| 17 | 13 | 32 | 6099.16 | 0.0004% |
| 17 | 12 | 33 | 6038.03 | 0.0003% |
| 16 | 13 | 36 | 6004.73 | 0.0002% |
| 18 | 13 | 34 | 5763.87 | 0.0001% |
| 18 | 12 | 36 | 5644.86 | 0.0000% |
| 17 | 13 | 34 | 5944.91 | 0.0000% |
| 18 | 13 | 33 | 5837.72 | 0.0000% |
| 17 | 12 | 36 | 5827.10 | 0.0000% |
| 17 | 13 | 33 | 6019.71 | 0.0000% |
| 18 | 13 | 36 | 5627.42 | 0.0000% |
| 17 | 13 | 36 | 5806.70 | 0.0000% |
Obviously, we begin our search for isotopologue patterns with the most abundant isotopologue OC$^{34}$S, which is 4%. Its estimated rotational constant is $B=6167.36 \text{ MHz}$ but we have some additional information. From our analysis of the main isotopologue, we know that the estimated rotational constant was slightly too large. Since the rotational constant depends only on the geometry and the masses, our geometry was probably slightly off (which is not very surprising given our estimations). We can calculate a correction factor from the experimental value and the initial estimated value for $B$. This should yield $B_\text{exp} / B_\text{est} \approx 0.962$. Therefore, we should multiply all estimated $B$ values by this correction factor.
Solution
| mO | mC | mS | B [MHz] | Abundance |
|---|---|---|---|---|
| 16 | 12 | 32 | 6081.98 | 93.5697% |
| 16 | 12 | 34 | 5933.00 | 4.3133% |
| 16 | 13 | 32 | 6061.89 | 1.0029% |
| 16 | 12 | 33 | 6005.24 | 0.7501% |
| 18 | 12 | 32 | 5705.59 | 0.1922% |
| 16 | 13 | 34 | 5911.38 | 0.0462% |
| 17 | 12 | 32 | 5884.29 | 0.0356% |
| 16 | 12 | 36 | 5799.59 | 0.0197% |
| 18 | 12 | 34 | 5560.40 | 0.0089% |
| 16 | 13 | 33 | 5984.37 | 0.0080% |
| 18 | 13 | 32 | 5691.34 | 0.0021% |
| 17 | 12 | 34 | 5737.31 | 0.0016% |
| 18 | 12 | 33 | 5630.80 | 0.0015% |
| 17 | 13 | 32 | 5867.40 | 0.0004% |
| 17 | 12 | 33 | 5808.58 | 0.0003% |
| 16 | 13 | 36 | 5776.55 | 0.0002% |
| 18 | 13 | 34 | 5544.84 | 0.0001% |
| 18 | 12 | 36 | 5430.35 | 0.0000% |
| 17 | 13 | 34 | 5719.00 | 0.0000% |
| 18 | 13 | 33 | 5615.89 | 0.0000% |
| 17 | 12 | 36 | 5605.67 | 0.0000% |
| 17 | 13 | 33 | 5790.96 | 0.0000% |
| 18 | 13 | 36 | 5413.58 | 0.0000% |
| 17 | 13 | 36 | 5586.05 | 0.0000% |
Next, we will create a model for the OC$^{34}$S isotopologue. To do so, we can copy the main isotopologue *.par file and only change the $B$ value. It is often better to fix the higher-order constants to the respective main isotopologue values than to set them to zero. You can find the respective *.var file here, in case you want to compare your version. For now, we will use the same *.int file and neglect any small changes in the dipole moment. Create predictions for the transitions by running SPCAT, then load them together with the spectrum into LLWP. You should immediately see a pattern of experimental lines close to the predicted transitions.
As an exercise, create a second set of predictions without the higher-order parameters and compare the two Loomis-Wood plots with each other. You should see that fixing the constants to the main isotopologue value results in more accurate predictions.
Assign-Fit-Predict
Now repeat the same steps as for the main isotopologue:
- Assign the correct quantum numbers to the experimental lines in LLWP
- Save the assignments to a *.lin file
- Create a *.par file from the *.var file (update the uncertainties, and the number of lines)
- Run SPFIT
- Check the relative uncertainties of the parameters (are all parameters defined, if not, remove them, repeat)
- Run SPCAT
- Check the residuals
Similarly to the main isotopologue, you can determine sensible uncertainties for your new assignments and adjust the uncertainties in the *.lin file accordingly. Then, search for OC$^{34}$S in the CDMS and add the available literature data to your model. Check if you should add any higher-order parameters. Finally, compare your model to the one found in the CDMS.
No Model - No Problem
After successfully modeling OCS and OC$^{34}$S, we will continue searching for more isotopologues in the spectrum. This time, however, we will forego initial predictions and search for patterns in the Loomis-Wood plots.
Load the OCS spectrum and the *.cat and *.int files of the two isotopologues that have already been modelled. Loading the *.lin files will mark all already assigned lines with a blue star and makes it easy to exclude them from our search. We can then use the predictions for the main isotopologue and search for patterns around it. However, there is one problem. We have loaded two *.cat and *.int files with the same quantum numbers. LLWP uses the first matching prediction for the reference series, which, in this case, are the predictions for OC$^{34}$S. To limit the selection to a single file, go to the Reference Series window and click the All button behind the File: label. In the dialog that opens, choose the file with the main isotopologue . This is very useful when working with many single-state fits, as we are doing here.
It is difficult to see any additional isotopologues in the resulting Loomis-Wood plot because each row is scaled to its maximum intensity. Thus, any less intense lines are difficult to spot. We can change this by opening the Scaling Window via the menu (Plot > Scaling Window). In there, we choose the Custom option for the y-axis. New input fields will appear, specifying the minimum and maximum values of the y-axis (excluding a user-defined margin) and the scaling factor between the predicted and experimental intensities. Choose 6.5e2 for the scaling, and enter 0 and 0.001 for the min and max values, respectively. Now, two additional series should be visible in the Loomis-Wood plot.
Awesome Tip
-2 * 19.55 * (qnl1 + 1)
LLWP labels the quantum numbers internally as qnu1, qnu2, qnu3, ... for the upper quantum numbers and qnl1, qnl2, qnl3, ... for the lower quantum numbers.
Therefore, the expression can be translated to
$$
-2 \cdot \Delta B \cdot (J+1)
$$
which effectively decreases the $B$ rotational constant by 19.55 MHz.
For the second unassigned series, you can set the $\Delta B$ to about -76.6 MHz. Based on these observations and the previously calculated rotational constants $B$, you can already identify the correct isotopologues for these two series.
Start to assign one of the two series, save the assignments to a new *.lin file, and fit a model to these assignments. Repeat these steps for the second series. Once you have finalized the models for the two series, compare the resulting $B$ values with the estimated $B$ values. Which two isotopologues did you assign?
Solution
This exercise demonstrates that similar fingerprints (of isotopologues or vibrationally excited states) can be found by searching for similar patterns around already identified patterns in Loomis-Wood plots. Conversely, if you spot one of these patterns in a Loomis-Wood plots, you now know that it probabaly belongs to an isotopologue or a vibrationally excited state.
A good way to practice what you learned in this chapter is to identify isotopologues in the experimental spectrum from the previous chapter.