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] aexi_v1_0.tar.gz(5388 Kbytes)
Manuscript Title: DensToolKit: a comprehensive open-source package for analyzing the electron density and its derivative scalar and vector fields
Authors: J. M. Solano-Altamirano, Julio M. Hernández-Pérez
Program title: DensToolKit
Catalogue identifier: AEXI_v1_0
Distribution format: tar.gz
Journal reference: Comput. Phys. Commun. 196(2015)362
Programming language: C++, bash.
Computer: Any.
Operating system: Linux, MacOSX, Windows (cygwin).
RAM: The memory requirements grow quadratically with the number of primitives describing the wavefunction. A wavefunction with 1,500 primitives uses ∼17MB, and 2GB RAM are enough to process wavefunctions of around 10,000 primitives. A few more MB may be needed by some of the most demanding programs of the package if the number of primitives is large.
Keywords: Electron Density, Quantum Theory of Atoms in Molecules, Spatial Grids, Momentum Space, Reactivity Indices, Reduced Density Matrix of Order One.
PACS: 31.10.+z, 31.15.ae, 31.90.+s, 87.10.-e.
Classification: 6.5, 7.3, 16, 16.1.

External routines: (optional) gnuplot, povray, epstool, Graphics-Magick, epstopdf

Nature of problem:
The study of the electron density of molecules, some reactivity indices, and the topology of the electron density can be used to analyze the chemical nature, stability and reactivity of those molecules. Furthermore, the study of the electron density and functionals of it may help us in gaining a better understanding of the chemical bond. Reactivity indices and the molecular topological properties may also aid in molecular design.

Solution method:
The suite provides several programs in order to compute scalar and vector fields derivatives of the electron density. Those fields are obtained from a wavefunction file, which is in turn obtained from programs such as Nwchem, MolPro, etc. The functions, whereby the fields are computed, are implemented following mathematically standard but computationally optimized and parallelized algorithms built upon the Density Matrix. The suite provides several small but efficient programs, easily scriptable, for evaluation of the fields upon spatial grids. Regarding the topology analysis, the suite uses the algorithm proposed by Popelier, which uses the eigen-values of the Hessian of the electron density for locating the critical points. Bond paths are traced using a fifth-order Runge-Kutta Dormand-Prince algorithm. Optional visualization of the produced data can be carried out by scripts generated by the suite, which can be parsed later to gnuplot, or povray. In addition, DensToolKit provides an open door for the user to program new scalar or vector fields, with almost complete functionality for evaluating such fields upon the same spatial grids as those implemented for the fields already provided in the suite.

Wavefunctions with more than 99 nuclei must be input in wfx format. In the current version, wavefunctions that use pseudopotentials must have only one Additional Electron Density Function (EDF) entry in the wfx file, which in this case is the only accepted input format, and pseudopotential support is provided only in non-parallel compilation.

Additional comments:
A simple method for implementing new indices (derived from any of the implemented fields) is provided. In this manner, the final user may easily program his/her own scalar or vector field with a few code lines.

Running time:
Strongly dependant on the number of primitives used for approximating the wavefunction (∼N2p). It also depends on the evaluated number of points and type of field. Wavefunctions comprised of 1,500 primitives may take several hours to complete, while small molecules described by two or three hundred primitives take a few seconds. Typical running times are at least as fast as the times taken by some commercial or freely available codes. In many cases, the programs perform the computations with a speed-up of 2x (with respect to other available programs), and in some cases 10x speed-ups or more can be attained.