filter_nonvib

psi4.driver.qcdb.vib.filter_nonvib(vibinfo, remove=None)[source]

From a dictionary of vibration Datum, remove normal coordinates.

Parameters:
  • vibinfo (Dict[str, Datum]) – Results of Hessian analysis.

  • remove (Optional[List[int]]) – 0-indexed indices of normal modes to remove from vibinfo. If None, non-vibrations (R, T, or TR as labeled in vibinfo[‘TRV’]) will be removed.

Returns:

Copy of input vibinfo with the specified modes removed from all dictionary entries.

Return type:

dict

Examples

>>> # after a harmonic analysis, remove first translations and rotations and then all non-A1 vibs
>>> allnormco = harmonic_analysis(...)
>>> allvibs = filter_nonvib(allnormco)
>>> a1vibs = filter_nonvib(allvibs, remove=[i for i, d in enumerate(allvibs['gamma'].data) if d != 'A1'])