Vibrational Spectroscopy: Calculating the Rovibrational Spectrum of a Diatomic Molecule
Copyright (c) RDMCHEM LLC 2019
Normal Mode Analysis
Ab initio Calculation: Density Functional Theory
In this exercise, you will calculate the rovibrational spectrum of a diatomic molecule of interest (e.g.HCl) using different levels of theory: a normal mode analysis and ab initio methods.
Normal Mode Analysis:
As a first approximation, you will use the harmonic oscillator / rigid rotor approximation to calculate the fundamental vibrational frequency, v0, and rotational energies. In this approximation, the total rovibrational energy is given by Eq. (1):
En,l = hv0n+12+ll+1ℏ22 μ R02 (1)
where n = 0, 1, 2, ... is the vibrational quantum number, l = 0, 1, 2, ... is the rotational quantum number, R0is the equilibrium bond distance, and μ is the reduced mass of the diatomic.
Using the Bohr correspondence principle, one can calculate a given transition between any two rovibrational states. However, selection rules for a rotating/vibrating heteronuclear diatomic are Δl = ±1 and Δn = ±1. Therefore, the (0,0) --> (1,0) fundamental transition would not be observed. What would be observed are the P-branch (corresponding to all transitions with Δl = -1) and the R-branch (all transitions corresponding to Δl = +1):
P-branch: ΔE= E1, l−1 − E0,l = hcλ (2)
R-branch: ΔE= E1, l+1 − E0,l = hcλ (3)
Transition energies are typically expressed in wavenumbers (cm−1):
ΔEhc=1λcm= v~. (4)
You will use the GeometryOptimization function to calculate R0 for the diatomic of interest and then use the VibrationalModes function to calculate the fundamental frequency, v~0. You will then calculate the rotational energies given by the second term in Eq. (1) for l = 0, 1, ..., lmax. You will then calculate P- and R-branches according to Eqs. (2) and (3) and compare to experimental values.
Ab Initio Calculation
While the above approximation is simple, more sophisticated methods can be used to capture the inherent anharmonicity in the system. In the second portion of this activity, you will calculate the potential energy surface (PES), V(R), using density functional theory (DFT) and the 6-31g basis set for a range of internuclear distances, R. Once V(R) has been constructed, the nuclear Schrodinger equation is given by
H∧ Ψn,l (R) = En,l Ψn,l (R). (5)
where Ψn,l is the corresponding rovibrational wavefunction, and the Hamiltonian, H∧, is given by
H∧ = -ℏ22 μ1Rⅆⅆ R+VR+ll+1ℏ22 μ R2, (6)
While the details of how one solves Eq. (5) are beyond the scope of this exercise, the variational principle is used: represent Eq. (5) in an underlying basis representation for Ψ and diagonalize the resulting matrix to get energy eigenvalues, En,l. (For more on matrix representations and the variational principle, see Variational Theorem exercise). Once En,l values have been calculated, the transition frequencies can again be calculated using the appropriate selection rules and Eqs. (2) and (3), and the results can be compared to experiment.
We begin by specifying the atoms in our diatomic. Note that the energy levels and spacings will depend on the isotopes we specify! The variables elementA and elementB are the element symbols for the atoms in our diatomic, and MassNumberA and MassNumberB are their respective mass numbers (integers). The variables Rmin and Rmax define the range over which the PES is computed and determine the level of accuracy of the vibrational calculation. The smaller the range, the quicker the calculation but the less accurate the results. Start with a reasonable guess and proceed through each step to calculate the fundamental frequency. Vary Rmin and Rmax until some acceptable level of convergence has been reached. Once this has been done, Rmin and Rmax remain fixed for the different electronic structure methods and basis sets.
Finally, we specify the electronic structure method and basis set here. Begin with ESmethod = HartreeFock and AObasis = "sto-3g" and proceed. Once the fundamental has been calculated, repeat each step with a new basis and/or method.
wavenum_observed≔2885.8; # in wavenumbers
Rmin≔0.8; # in Angstroms
Rmax≔3.0; # in Angstroms
In this section, calculate the fundamental mode of the diatomic using a normal mode analysis, which approximates the vibration of the diatomic as a harmonic oscillator. First define the molecule with a bond length of 1 Angstrom and then use the GeometryOptimization function to redefine the molecule with the optimum bond length for the desired method and basis. Then use the VibrationalModes function to determine the energy (in wavenumbers) of the fundamental. Calculate the percent error.
molec,data≔H,0,0,0,Cl,3.31526629⁢10−10,−9.45757021⁢10−10,1.32081084,table⁡mo_occ=2.000000002.000000002.000000002.000000002.000000002.00000000⋮15 element Vector[column],mo_symmetry=AAAAAA⋮15 element Vector[column],converged=1,dipole=−4.45052230⁢10−101.26961595⁢10−9−1.77310614,charges=0.17963699−0.17963699,aolabels=0 H 1s0 H 2s1 Cl 1s1 Cl 2s1 Cl 3s1 Cl 4s⋮15 element Vector[column],mo_coeff=0.00025025−0.001401200.0019886184.108.40.20612321…−0.000879180.00517389−0.004881150.0.0.05078387…0.99649842−0.28577239−0.003739590.0.0.08022513…0.012735181.027468650.013547870.0.−0.35999984…−0.004314310.03797009−0.0016827220.127.116.11942061…0.00266304−0.016528130.003484618.104.22.168688961…⋮⋮⋮⋮⋮⋮15 Ã— 15 Matrix,group=C1,mo_energy=−101.53709945−9.47156815−7.23564276−7.22348732−7.22348732−0.85207881⋮15 element Vector[column],rdm1=0.225894530.175522130.00971109−0.038517610.07259390−0.06596280…0.175522130.15093664−0.012470910.04740469−0.07212500−0.11222339…0.00971109−0.012470912.16399561−0.627771320.101083170.07277930…−0.038517610.04740469−0.627771322.40835055−0.51357131−0.29614731…0.07259390−0.072125000.10108317−0.513571311.183606180.52178177…−0.06596280−0.112223390.07277930−0.296147310.521781770.27590606…⋮⋮⋮⋮⋮⋮15 Ã— 15 Matrix,populations=0.494127060.326235951.999710721.996767931.426279680.54423925⋮15 element Vector[column],e_tot=−460.70734509
Now, consider the rovibrational transitions allowed for a heteronuclear diatomic AB. The vibrational selection rules are Δv = Δ±1, Δl = ±1. Therefore, for transitions between v = 0 --> v = 1, there is a manifold of Δl = ±1 lines.
R0≔1.32081083413467ⅇ−10; # Value from GeometryOptimization calculation above
for l from 0 by 1 to lmax do Erotl≔l⋅l+1⋅evalfConstanthbar22⋅moment_inertia⋅1evalfConstanth⋅evalfConstantc⋅100.0; end do
# Calculate P- and R-branches for l = 0, 1, 2, ..., lmax
P-branch: Dl = -1
for l from 1 by 1 to lmax do P≔emodes1+Erotl−1−Erotl: end do
R-branch: Dl = +1
for l from 0 by 1 to lmax−1 do R≔emodes1+Erotl+1−Erotl: end do
What do you notice about the spacing between lines in the P-branch? in the R-branch? Are these observations consistent with an experimental IR spectrum of the diatomic AB?
There is equal spacing between lines in both P and R branches. This is consistent with a rigid rotor approximation!
Construct Potential Energy Surface
In this section, use DFT to solve for the potential energy surface of diatomic AB. Begin by using the ScientificConstants package to get the mass of each of the elements A and B. Use the QuantumChemistry package to calculate the PES for a range of separation values between Rmin and Rmax. (Note, DFT may not converge for at larger values of R. This should not affect the final results.)
Rdata≔seqR,R=Rmin..Rmax,0.05: # Determines the points at which our PES will be explicitly calculated molecules ≔ seqconvertelementA,string,0,0,0,convertelementB,string,0,0,i, i=Rmin..Rmax,0.05:edata≔ mapEnergy,molecules, method=ESmethod,basis=ESbasis:pes ≔ splineRdata,edata,r,3: plot_pes≔ plot pes, r=Rmin..Rmax, axes=BOXED, font=ROMAN,16, labelfont=ROMAN,16, labels='r','E', color=blue;
Calculate Vibrational Energy Levels
Once you have a PES, you can solve the vibrational Schrodinger equation. Calculate the energies for a range of angular momentum values and to calculate the P- and R-branches.
Evl≔Matrixn,lmax+1:HDVR≔Matrixn,n:r≔Vectorn:V≔Vectorn :redm≔mA⋅mBmA+mB: dr≔Rmax−Rminn−1:dx≔dr 0.52917721092:
for i from 1 by 1 to n do ri≔Rmin+i−1.⋅dr: #Vi≔0.1697⋅1 − exp−0.9890⋅ri0.52917721092 − 2.4092: # Morse potential for HCl... Vi≔splineRdata,edata,ri,3:end do:
for l from 0 by 1 to lmax do for i from 1 by 1 to n do for j from 1 by 1 to n do if i=j then HDVRi,j≔0.5redm⋅dx2⋅−1 i−j⋅Pi23.0−0.5i2+Vi +l⋅l+12⋅redm⋅ri2 else HDVRi,j≔0.5redm⋅dx2⋅−1 i−j⋅2i−j2−2i+j2 end if end do end do : E≔EigenvaluesMatrixHDVR,shape=symmetric: for i from 1 by 1 to n do Evli,l+1≔Ei end do end do:
Fundamental Transition Frequency
We can now calculate the fundamental frequency ( in wavenumbers, 1/cm). This number can be compared to the experimental value for the AB diatomic of interest. Enter the results into Table 1 below!
Table 1: Fundamental Frequencies for Diatomic AB (v0 = 2872.3 cm-1 for HCl.)
Fundamental Frequency v0 (cm-1)
Density Functional Theory
P-Branch and R-Branch
As a final exercise, we consider the rovibrational transitions allowed for a heteronuclear diatomic AB using the method/basis that gave the best results in Table 1. If necessary, recompute the rovibrational eigenvalues for this combination before proceeding.
P-branch: DJ = -1
for l from 1 by 1 to lmax do P≔Evl2,l−1+1−Evl1,l+1⋅219476.329478: end do
R-branch: DJ = +1
for l from 0 by 1 to lmax−1 do R≔Evl2,l+1+1−Evl1,l+1⋅219476.329478: end do
P-branch: spacing increases as J increases.
R-branch: spacing decreases as J increases.
J. C.Light, I. P.Hamilton, and J. V. Vill, J. Chem. Phys. 82 ,1400 (1985).
Download Help Document
What kind of issue would you like to report? (Optional)