# freq

`psi4.driver.``freq`(name, **kwargs)

  Function to compute harmonic vibrational frequencies.

  Aliases: | frequencies(), freq()
  Returns: | float – Total electronic energy in Hartrees.
  Returns: | (float, `Wavefunction`) – energy and wavefunction when return_wfn specified.
  Parameters: | name (string) – `'scf'` || `'mp2'` || `'ci5'` || etc. First argument, usually unlabeled. Indicates the computational method to be applied to the system. molecule (molecule) – `h2o` || etc. The target molecule, if not the last molecule defined. return_wfn (boolean) – `'on'` || \(\Rightarrow\) `'off'` \(\Leftarrow\) Indicate to additionally return the `Wavefunction` calculation result as the second element (after float energy) of a tuple. Arrays of frequencies and the Hessian can be accessed through the wavefunction. func (function) – \(\Rightarrow\) `gradient` \(\Leftarrow\) || `energy` || `cbs` Indicates the type of calculation to be performed on the molecule. The default dertype accesses `'gradient'` or `'energy'`, while `'cbs'` performs a multistage finite difference calculation. If a nested series of python functions is intended (see Function Intercalls), use keyword `freq_func` instead of `func`. dertype (dertype) – \(\Rightarrow\) `'hessian'` \(\Leftarrow\) || `'gradient'` || `'energy'` Indicates whether analytic (if available- they’re not), finite difference of gradients (if available) or finite difference of energies is to be performed. irrep (int or string) – \(\Rightarrow\) `-1` \(\Leftarrow\) || `1` || `'b2'` || `'App'` || etc. Indicates which symmetry block (Cotton ordering) of vibrational frequencies to be computed. `1`, `'1'`, or `'a1'` represents \(a_1\), requesting only the totally symmetric modes. `-1` indicates a full frequency calculation.

  Note

  Analytic hessians are only available for RHF. For all other methods, Frequencies will proceed through finite differences according to availability of gradients or energies.

  name | calls method
  --- | ---
  scf | Hartree–Fock (HF) [manual]

  Examples: |

      >>> # [1] Frequency calculation for all modes through highest available derivatives
      >>> frequency('ccsd')

      >>> # [2] Frequency calculation for b2 modes through finite difference of gradients
      >>> #     printing lowest mode frequency to screen and Hessian to output
      >>> E, wfn = frequencies('scf', dertype=1, irrep=4, return_wfn=True)
      >>> print wfn.frequencies().get(0, 0)
      >>> wfn.hessian().print_out()

      >>> # [3] Frequency calculation at default conditions and Hessian reuse at STP
      >>> E, wfn = freq('mp2', return_wfn=True)
      >>> set t 273.15
      >>> set p 100000
      >>> thermo(wfn, wfn.frequencies())

      >>> # [4] Opt+Freq, skipping the gradient recalc at the start of the Hessian
      >>> e, wfn = optimize('hf', return_wfn=True)
      >>> frequencies('hf', ref_gradient=wfn.gradient())