Molecular Vibrations & Visualization
After performing a vibrational frequency calculation in ORCA (using ! NumFreq or ! Freq),
we obtain the normal modes and frequencies of the molecule. For any non-linear molecule with N atoms,
there are 3N - 6 vibrational degrees of freedom (modes 0 to 5 correspond to overall translation
and rotation, having near-zero frequencies).
To inspect which atoms are moving during each vibration, ORCA includes a dedicated built-in utility:
orca_pltvib.
How orca_pltvib works:
The orca_pltvib tool reads the Hessian file (*.hess) generated by ORCA along with the
vibrational normal mode number, and produces a multi-frame Cartesian coordinates file (*.xyz) with
a 20-frame sinusoidal animation cycle.
Visualizing with wxMacMolPlt:
Once the animated *.xyz file is generated, you can open it directly in
wxMacMolPlt (or Chemcraft / Avogadro).
Use the playback controls at the bottom of wxMacMolPlt to play the animation, adjust the loop speed,
and inspect the displacement vectors.
Key commands and workflow:
grep -A 40 'IR SPECTRUM' isoprene.out
Displays the vibrational modes list and frequencies (cm⁻¹).
orca_pltvib file.hess <mode_number>
Built-in ORCA tool that extracts the normal mode and creates the animated .xyz file.
orca_pltvib file.hess all
Generates animated .xyz files for every vibrational mode simultaneously.
wxmacmolplt file.hess.v017.xyz
Launches the wxMacMolPlt viewer to animate and inspect the vibrational motion.
[emma@pople]$ vi isoprene_vib.inp
# ORCA Vibrational Frequency Calculation
! RKS PBE TZVP TightSCF PAL8
! Opt NumFreq
# Coordinates of Isoprene (13 atoms -> 33 vibrational modes)
* xyz 0 1
C -0.2638 -0.1109 0.0000
C -1.3682 -0.8722 0.0000
C -2.6947 -0.2665 0.0000
C -3.8458 -0.9410 0.0000
C -1.2885 -2.3550 0.0000
H -0.3045 0.9856 0.0000
H 0.7449 -0.5425 0.0000
H -2.7008 0.8389 0.0000
H -3.8994 -2.0373 0.0000
H -4.8166 -0.4284 0.0000
H -0.2275 -2.7055 0.0000
H -1.7967 -2.7689 0.9064
H -1.7967 -2.7689 -0.9064
*
[emma@pople]$ /path/to/orca isoprene_vib.inp > isoprene_vib.out
[emma@pople]$ grep -A 15 'IR SPECTRUM' isoprene_vib.out
-----------------------------------------------------
Mode freq (cm**-1) T**2 TX TY TZ
-----------------------------------------------------
6: 151.83 0.001
7: 298.42 0.042
...
17: 935.31 1.482
19: 1029.15 2.110
[emma@pople]$ orca_pltvib isoprene_vib.hess 17
This file is being recognized as a valid Hessian file
Will plot 1 vibration: mode 17 (935.31 cm**-1)
Creating: isoprene_vib.hess.v017.xyz (20 frames)
[emma@pople]$ wxmacmolplt isoprene_vib.hess.v017.xyz