Elsevier Science Home
Computer Physics Communications Program Library
Full text online from Science Direct
Programs in Physics & Physical Chemistry
CPC Home

[Licence| Download | New Version Template] afac_v1_0.tar.gz(6925 Kbytes)
Manuscript Title: PyVCI: a flexible open-source code for calculating accurate molecular infrared spectra
Authors: Marat Sibaev, Deborah L Crittenden
Program title: PyVCI
Catalogue identifier: AFAC_v1_0
Distribution format: tar.gz
Journal reference: Comput. Phys. Commun. 203(2016)290
Programming language: Python, C.
Computer: PC.
Operating system: Linux, MacOSX, Windows.
RAM: Varies widely
Keywords: Vibrational configuration interaction, nuclear vibrational problem, harmonic oscillator basis, sparse matrix, parallel.
Classification: 16.3.

External routines: Numpy, Scipy, Cython

Nature of problem:
The simulation of accurate molecular vibrational spectra is a significant and long-standing problem in computational chemistry. There are two major challenges: constructing an accurate ab initio potential energy surface and solving the nuclear vibrational problem. Both scale poorly with respect to molecular size, requiring large amounts of CPU time and memory.

Solution method:
We have implemented a straightforward numerical differentiation algorithm to construct quartic force fields in normal mode coordinates using second derivatives of the energy with respect to nuclear displacement obtained from ab initio quantum chemical calculations, for nuclear vibrational structure algorithm development and testing purposes. We have also provided an interface to the PyPES library of high quality semi-global potential energy surfaces, which enable quantitative prediction of molecular vibrational spectra. To solve the nuclear vibrational problem, we use a vibrational configuration interaction algorithm in a harmonic oscillator basis.

Unusual features:
One of the unusual features of our code is its flexibility, with multiple ways of generating or supplying force field data, dynamic memory allocation, adjustable screening thresholds, and explicit user control over terms in the VCI wave-function (maximum excitation level and extent of mode-coupling). We employ sparse matrix linear algebra libraries to reduce the memory required for VCI matrix storage and diagonalization, and provide for parallel VCI matrix construction to reduce required wall times.

Additional comments:
User Manual and examples (tutes) included

Running time:
Varies widely