Abstract

The PyVCI program package is a general purpose open-source code for simulating accurate molecular spectra, based upon force field expansions of the potential energy surface in normal mode coordinates. It includes harmonic normal coordinate analysis and vibrational configuration interaction (VCI) algorithms, implemented primarily in Python for accessibility but with time-consuming routines written in C. Coriolis coupling terms may be optionally included in the vibrational Hamiltonian. Non-negligible VCI matrix elements are stored in sparse matrix format to alleviate the diagonalization problem. CPU and memory requirements may be further controlled by algorithmic choices and/or numerical screening procedures, and recommended values are established by benchmarking using a test set of 44 molecules for which accurate analytical potential energy surfaces are available.Force fields in normal mode coordinates are obtained from the PyPES library of high quality analytical potential energy surfaces (to 6th order) or by numerical differentiation of analytic second derivatives generated using the GAMESS quantum chemical program package (to 4th order). Program summaryProgram title: PyVCICatalogue identifier: AFAC_v1_0Program summary URL:http://cpc.cs.qub.ac.uk/summaries/AFAC_v1_0.htmlProgram obtainable from: CPC Program Library, Queen’s University, Belfast, N. IrelandLicensing provisions: MIT LicenseNo. of lines in distributed program, including test data, etc.: 401703No. of bytes in distributed program, including test data, etc.: 7091446Distribution format: tar.gzProgramming language: Python, C.Computer: PC.Operating system: Linux, MacOSX, Windows.RAM: Varies widelyClassification: 16.3.External routines: Numpy, Scipy, CythonNature 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) includedRunning time: Varies widely

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call