Raman spectra

This tutorial explains how to run Raman spectra calculations, visualize them. Please also check out the theory behind the calculations and the current limitations of our implementations.

Note

Currently, you can only use this feature with A-MLatom and MLatom@XACS, i.e., you can only perform such calculations on the XACS cloud (registration and basic use is free but you may want to request more computing time) or request the copy of A-MLatom for your local use. It is not available yet in the open-source MLatom.

Theory

The frequencies of a stationary point can be calculated by diagonalizing its Hessian matrix. The corresponding Raman intensities need polarizability derivatives (first derivatives of polarizability with respect to coordinates):

\(I_{n} = 45 a_{n}^{2} + 7 \gamma _{n}^{2}\) ,

\(a_{n} = (R_{nxx} + R_{nyy} + R_{nzz}) / 3\) ,

\(\gamma _{n}^{2} = [(R_{nxx}-R_{nyy})^2 + (R_{nxx}-R_{nzz})^2 + (R_{nyy}-R_{nzz})^2 + 6(R_{nxy}^2 + R_{nxz}^2 + R_{nyz}^2)] / 2\) ,

where \(R_{n \mu \nu} = \frac {\partial \alpha_{\mu \nu}} {\partial Q_{n}}\), \(\alpha_{\mu \nu}\) is the component of polarizability, \(Q_{n}\) is the \(n\) th normal coordinate. Usually, we get polarizability with respect to each atomic coordinate, so the above derivatives can be rewritten as:

\(R_{n \mu \nu} = \sum \limits _{x} \frac {\partial \alpha_{\mu \nu}} {\partial q_{x}} \frac {\partial q_{x}} {\partial Q_{n}}\) ,

where \(q_{x}\) is the component of atomic coordinates.

Example

We present a simple example of calculating Raman intensities of ethanol. The initial geometry can be downloaded here ethanol_init.xyz. We need to optimize its geometry first at the same level as we intend to calculate Raman spectra.

Warning

We recommend to use UAIQM methods for the Raman spectra calculations, example below is just to show that you can also use GFN2-xTB.

Example with input file

First, optimize the geometry of ethanol.

geomopt
GFN2-xTB
#uaiqm_gfn2xtbstar@cc # if you want to use UAIQM
xyzfile=ethanol_init.xyz
optxyz=ethanol_opt.xyz

After getting the geometry of the optimized ethanol (ethanol_opt.xyz) we can calculate its frequencies and Raman intensities. The keyword raman is needed for such calculations. IR intensities are calculated as well. You can refer to frequencies tutorial for information of other keywords.

raman
GFN2-xTB
#uaiqm_gfn2xtbstar@cc # if you want to use UAIQM
xyzfile=ethanol_opt.xyz

You will find in the MLatom output the vibrational analysis and Raman intensities.

==============================================================================
                     Vibration analysis for molecule      1
==============================================================================
Multiplicity: 1
Rotational symmetry number: 1
This is a nonlinear molecule
  Mode     Frequencies     Reduced masses     Force Constants       IR intensities     Raman intensities
             (cm^-1)            (AMU)           (mDyne/A)              (km/mol)            (A^4/AMU)
    1        202.4514          1.1396             0.0275                 6.9861             0.0561
    2        293.5529          1.0836             0.0550               146.0294             2.1517
    3        394.0049          2.8293             0.2588                10.2430             0.1549
    4        837.2716          1.0923             0.4512                 0.0441             0.0392
    5        930.2857          2.0739             1.0575                17.0638             3.4220
    6       1040.4667          1.9132             1.2203                33.2100             4.2849
    7       1128.2307          2.9052             2.1788                64.1200             4.0781
    8       1152.3249          1.5093             1.1808                12.9415             0.5200
    9       1239.8816          1.3027             1.1799                85.5492             3.1744
   10       1265.1749          1.1070             1.0440                 0.7252             6.4292
   11       1365.5011          1.2951             1.4228                 2.9341             0.8742
   12       1404.6911          1.2902             1.5000                17.2619             2.4119
   13       1474.2396          1.0536             1.3492                 8.6029             5.5777
   14       1493.7381          1.0691             1.4054                 5.5911            10.6898
   15       1495.5801          1.0697             1.4098                 3.3431             1.5195
   16       2853.0411          1.0966             5.2594                55.5098            58.1244
   17       2886.1994          1.0439             5.1236                73.3246           107.4003
   18       3046.5584          1.0570             5.7805                 7.8562            77.8001
   19       3051.4826          1.0946             6.0053                 9.7351            39.2472
   20       3055.3796          1.0641             5.8528                12.8053            63.1401
   21       3568.2629          1.0658             7.9951                75.0869            44.4583

Visualizing vibrations

There are several ways to visualize the vibrations:

  • Currently only on the XACS cloud computing:

    • At the end of the calculations via input file/command line using the options freq, ir, or raman, MLatom will dump the freq_gaussian{mol_index}.log file, which uses Gaussian-style output format for frequencies. You can open it in ChemCraft.

    • You can also dump text output file using Gaussian-style format for frequencies from the Python API: mymolecule.dump(filename='gauss.log', format='gaussian').

  • NEW: Now infrared spectrum and vibrations can be visualized at the same time. We offer a slider to choose which normal model to show and at the same time highlight the corresponding IR band in the spectrum. You can download the Jupyter notebook for an example of calc.json and exp.txt files.

  • You can directly view the vibrations in Jupyter notebook by using mymolecule.view(normal_mode=...), as shown below for an example molvibr.json file:

freq_view

Limitations

Note

Currently, you can only use this feature with A-MLatom and MLatom@XACS, i.e., you can only perform such calculations on the XACS cloud (registration and basic use is free but you may want to request more computing time) or request the copy of A-MLatom for your local use. It is not available yet in the open-source MLatom.

The Raman spectra are only available when using GFN2-xTB and UAIQM that uses GFN2-xTB as baseline. While GFN2-xTB does not support calculations of polarizability derivatives, they are calculated using PTB (S. Grimme, M. Mueller, A. Hansen, J. Chem. Phys. 2023, 158, 124111 DOI: 10.1063/5.0137838).

Any questions or suggestions?

If you have further questions, criticism, and suggestions, we would be happy to receive them in English or Chinese via email, Slack (preferred), or WeChat (please send an email to request to add you to the XACS user support group).