VibModule is a new software which implements Sipachev's curvilinear approach. This approach was first realized in the Shrink program. The theory and algorithms used in the current program can be found in:
 V.A. Sipachev, J. Mol. Struct. (Theochem), 121 (1985) 143.
 V.A. Sipachev, Vibrational Effects in Diffraction and Microwave Experiments: A Start on the Problem, In: I. Hargittai and M. Hargittai (Eds.), Advances in Molecular Structure Research; JAI: Greenwich, 1999; Vol. 5, pp. 323-371.
 V.A. Sipachev, Anharmonic Corrections to Structural Experiment Data, Struct. Chem., 2/3 (2000) 167.
 V.A. Sipachev, Local Centrifugal Distortions Caused by Internal Motions of Molecules, J. Mol. Struct., 567-568 (2001) 67.
 M. Iwasaki, K. Hedberg, J. Chem. Phys., 36 (1962) 2961.
Implementation of the new software is described in:
 Yury V. Vishnevskiy and Yuriy A. Zhabanov. New implementation of the first-order perturbation theory for calculation of interatomic vibrational amplitudes and corrections in gas electron diffraction // Journal of Physics: Conference Series 633 (2015) 012076
VibModule is a command line application. To run the program, use: vibmodule.exe [options] <input file> <output file> Options:
-r renumbering – file with a list of atoms to be renumbered -e equivalents - file with a list of symmetrically equivalent atoms -p filename – GAMESS PUNCH file (required if processing GAMESS output) -T temperature – temperature of the experiment -c filename - file with the description of the internal coordinates -s number - start number for enumeration of terms in KCED format
The VibModule program can use the Shrink input files. For a normal algorithm's performance you need *.dat and *.ffc Shrink input files. A *.ccc file is optional. To start the calulcation using these files you need only to give the *.dat file in the starting command, and all the additional files will be taken automatically. The VibModule program can recognize the following keywords in the Shrink input files:
The VibModule program features generation of internal coordinates. It allows it to use directly the output files of quantum-chemical packages such as Gaussian, Firefly (PC GAMESS) and GAMESS US, as input files. If you want to specify the internal coordinates, you can make an additional file that contains internal coordinates in Shrink-like format and point the program to this file using the optional key “–c”. Example of the file which contains the internal coordinates:
2 1 0 0 0 1 2 1 3 2 1 3
The first line contains the numbers of internal coordinates of different types.
Coordinates of five types are used: 1) stretching, 2) bending, 3) wagging, 4) linear bending, and 5) torsional.
The two stretching coordinates between atoms number 1 and 2, 1 and 3, and one bending coordinate (atoms number 2,1,3) are specified in the example above.
A full description of coordinates can be found in the Shrink's manual.
The VibModule program prints generated internal coordinates in this format in the output file. You can copy this part of the output file to another file, modify it and use it as the file for “–c” option.
If you need to specify the detailed parameters of the calculation and display the results, you can create an input file in VibModule's own format.
Example of simplest input file:
VIBMODULE GAUSSIAN H2O2.log STOP
VIBMODULE - compulsory first line of input file
GAUSSIAN H2O2.log – read the Gaussian output file H2O2.log as input file.
STOP - compulsory last line of input file
List of keywords
GAUSSIAN <filename> - read the Gaussian output file as an input file. FIREFLY <filename> <PUNCH filename> - read the Firefly (PC GAMESS) output file as an input file. GAMESS <filename> - read the US GAMESS output file as an input file. ZFREQ <value> - sets the value below which frequencies are considered to be corresponding to translational or rotational degrees of freedom. TEMP <value> - temperature of the experiment (default 300 K). INTERNALCOORDS - the group, which describes the internal coordinates. Example: INTERNALCOORDS 2 1 0 0 0 1 2 1 3 2 1 3 END IGNORE - the group, which describes the numbers of modes, which should be ignored. This option is important for the construction of dynamical model. Example: IGNORE 1 3 5 END BONDS - the group, which describes the pair of atoms that are bonded. This information is taken into account during generation of internal coordinates. It should be used if the bond is not recognized from Van-Der-Waals atomic radius. Example: BONDS 1 58 5 35 END SCALE - the group, which describes Pulay coordinates' scaling factors. Example1: SCALE 1 5.0 3 3.0 END The force constants corresponding to coordinates number 1 and 3 will be scaled. Example2: SCALE POW 0.3 1 5.0 3 3.0 END The cubic force constants corresponding to coordinates number 1 and 3 will be scaled using power 0.3 (default power is 0.5). EQUIV - The group, which describes the equivalent atoms. It is used for printing the results in the KCED format. RENUMB – Renumbering of atoms. It is used for printing the results in the KCED format. STARTNUM <value> - the starting number for numbering of terms. It is used for printing the results in the KCED format. PRINTKCED - print results in the KCED format. PRINTFRFKCED - print results in the FreeKCED format. PRINTUNEX - print results in the UNEX format. PRINTFC1 - print quadratic force constants in internal coordinates to a *.fc1 file. PRINTCC1 - print cubic force constants in internal coordinates to a *.cc1 file. PRINTNCC - print cubic force constants in normal coordinates to a *.ncc file. PRINTPED – print the potential energy distribution. PRINTICCVM – print internal coordinate contributions to vibrational modes. PRINTSIGMA – print the values of frequency factors. PRINTL - print L – matrix. PRINTDFC - print the values of diagonal force constants.
Lines starting with ";" are considered as comments!
Example of input file:
VIBMODULE GAMESS h2o_calc.log ZFREQ 5 TEMP 235.3 SCALE POW 0.3 1 5.0 3 3.0 END PRINTFC1 PRINTCC1 PRINTNCC INTERNALCOORDS 2 1 0 0 0 1 2 1 3 2 1 3 END IGNORE 1 3 END EQUIV 1 2 3 4 END RENUMB 2 6 3 9 END STARTNUM 100 PRINTFC1 PRINTPED PRINTCC1 PRINTICCVM PRINTNCC PRINTSIGMA PRINTUNEX PRINTKCED STOP