Why compute frequencies
A frequency job after an optimisation serves three purposes:
- Characterise the stationary point: all real frequencies → stable minimum; exactly one imaginary frequency → transition state.
- Provide thermochemical corrections: zero-point energy (ZPE), thermal corrections, entropy → Gibbs free energy G.
- Predict IR / Raman spectra: vibrational spectra directly comparable to experiment.
Basic usage — AnFreq vs NumFreq
Two flavours are available:
| Keyword | Mode | Notes |
|---|---|---|
Freq or AnFreq | Analytical derivatives | Fast and accurate. Supported for HF, DFT, MP2, CASSCF. |
NumFreq | Numerical derivatives | Available for every method. Performs 6 × Natom gradient evaluations. |
# Analytical frequencies (preferred when available)
! B3LYP D4 def2-TZVP Freq
# Numerical frequencies (when analytical derivatives are unavailable, e.g. CCSD(T))
! CCSD(T) cc-pVDZ NumFreq
A frequency calculation only makes sense at a stationary point (zero gradient). If you compute frequencies on an un-optimised geometry the translational and rotational modes acquire non-zero values, and every other mode is contaminated as a result. Always optimise first with the same method and basis set.
Combined with optimisation
The most common pattern is to chain Opt and Freq on the same keyword line:
! B3LYP D4 def2-TZVP RIJCOSX def2/J TightOpt Freq
* xyzfile 0 1 mol.xyz
Once the optimisation converges, ORCA automatically launches the frequency calculation at the same level. If you find an imaginary frequency, distorting the geometry along that mode and re-optimising usually resolves it.
Reading the output
After a frequency calculation the output contains a table like this:
-----------------------
VIBRATIONAL FREQUENCIES
-----------------------
Scaling factor for frequencies = 1.000000000 (already applied!)
0: 0.00 cm**-1
1: 0.00 cm**-1
2: 0.00 cm**-1
3: 0.00 cm**-1
4: 0.00 cm**-1
5: 0.00 cm**-1
6: 1659.34 cm**-1
7: 3805.21 cm**-1
8: 3914.47 cm**-1
The first six entries (five for linear molecules) are the translational and rotational modes — they should always appear near zero. The remaining entries are the true vibrational modes. In the example above water has three modes: the bend (1659), symmetric stretch (3805) and antisymmetric stretch (3914).
Visualising modes — normal coordinates
Displacement vectors for each mode appear in the NORMAL MODES section:
------------
NORMAL MODES
------------
0 1 2 3 4
0 0.000000 0.000000 -0.000000 0.000000 -0.000000
1 0.000000 0.000000 0.000000 -0.000000 0.000000
...
To inspect normal coordinates intuitively, use the orca_pltvib utility to
generate a trajectory of the vibration:
# Extract a trajectory for mode 6 (writes an XYZ file)
orca_pltvib mol.hess 6
Handling imaginary frequencies
Imaginary frequencies appear as negative numbers in the output:
6: -456.78 cm**-1 ***imaginary mode***
7: 1234.56 cm**-1
8: ...
If you did not intend to find a transition state, this is how to resolve it:
- Displace every atom slightly along the imaginary mode's normal coordinate (say ± 0.1 Å). Extracting the first amplitude frame from
orca_pltvibis the easiest way. - Re-optimise from this new geometry. Consider tightening to
VeryTightOpt. - Re-run the frequencies and confirm all modes are real.
Frequencies of ± 10 cm⁻¹ or so are usually numerical noise from the integration
grid or the SCF threshold. Tightening to DefGrid3 VeryTightSCF and
re-running often removes them.
Thermochemistry — Gibbs free energy
Once the frequencies are in, ORCA automatically prints the thermochemistry. The default reference conditions are 298.15 K and 1 atm:
-------------------------
THERMOCHEMISTRY AT 298.15K
-------------------------
Temperature ... 298.15 K
Pressure ... 1.00 atm
Total Mass ... 18.01 AMU
Zero point energy ... 0.02143521 Eh 13.45 kcal/mol
Thermal vibrational correction ... 0.00010256 Eh 0.06 kcal/mol
Thermal rotational correction ... 0.00141572 Eh 0.89 kcal/mol
Thermal translational correction ... 0.00141572 Eh 0.89 kcal/mol
-------------------------------------------------
Total thermal energy -76.39541321 Eh
Total enthalpy -76.39447892 Eh
Final Gibbs free energy -76.42157345 Eh
-------------------------------------------------
G-E(el) ... 0.00219978 Eh 1.38 kcal/mol
The key entries are:
| Item | Meaning |
|---|---|
| Zero point energy | The vibrational energy that remains at 0 K. |
| Total thermal energy | U = Eel + ZPE + thermal corrections. |
| Total enthalpy | H = U + pV. |
| Final Gibbs free energy | G = H − TS. The number you usually want for reaction free energies. |
Changing T and p
%freq
Temp 373.15 # 100 °C
Pressure 1.0 # atm
end
The default RRHO (rigid-rotor harmonic oscillator) model over-estimates the entropy
of low-frequency modes (< 100 cm⁻¹). Applying Grimme's quasi-RRHO correction
gives noticeably better free energies. Enable with
%freq QuasiRRHO true CutOffFreq 35 end. The improvement is
particularly visible for conformer searches and floppy molecules.
IR · Raman spectra
IR intensities are always printed alongside the frequencies. Raman intensities require
either ! NumFreq or a polarisability calculation in the same job.
To turn the printed table into a spectrum, use the orca_mapspc utility:
# IR spectrum (.dat file)
orca_mapspc mol.out ir -w25
# Raman spectrum
orca_mapspc mol.out raman -w50
# Open mol.out.ir.dat or mol.out.raman.dat in gnuplot, matplotlib, …
The -w flag sets the Lorentzian / Gaussian line width in cm⁻¹. Running
orca_mapspc with no arguments prints the full option list.
Useful options
%freq
CentralDiff true # central differences in NumFreq (default: forward). More accurate, 2× slower.
Increment 0.005 # displacement size (bohr). Default 0.005.
Restart true # resume an interrupted NumFreq
ProjectTR true # project out translational / rotational modes (default on)
Mass2016 true # IUPAC 2016 atomic masses
QuasiRRHO true # quasi-RRHO entropy correction
CutOffFreq 35.0 # quasi-RRHO cutoff (cm^-1), default 35
end
Harmonic frequencies from DFT are typically 5–10 % too high compared to experiment. When comparing with literature, multiply by the functional-specific recommended scaling factor — e.g. ~0.961 for B3LYP/6-31G(d) and ~0.965 for B3LYP/def2-TZVP. A comprehensive table lives at NIST CCCBDB (cccbdb.nist.gov).
With frequencies for both minima and transition states in hand, the next step is to connect them.