This toolkit is a set of stand-along command-line programs written for assisting theoretical/computational chemistry research where Non-Equilibrium MD simulation is needed. This toolkit is written primarily to work in the situation where:
- GROMACS is used for MD propagation;
- Gaussian 09 is used for electronic structure calculation with DFT;
- GaussView is used for molecule visualization;
- CNDO program is used for electronic structure calculation with INDO/S semi-empirical method;
- Block-diagonalization or general Mulliken-Hush (GMH) method is used for computing electronic coupling (HDA).
Detailed description can be found below for each tool.
This toolkit is developed in Scientific Linux environment and included in each directory of this repo are the source code along with Makefile used to compile the source. GNU compilers are used in the development and for the python scripts, python 2.7.x installation through ANACONDA from Continuum is recommended and NumPy is required. For most of the tools, the compiled binary excutable has a name started with g_
to indicate the consistency with GROMACS. Most of them can display help information or usage information by typing [excutable name] -h
in terminal and one should alway refer to that for detailed usage info. If the -h
option is not available, then a simple [excutable name]
call without command line argument could usually display the help information.
This directory contains the source code of the auxiliary library which is used accross the entire repository. All the C code are written by Zheng Ma. The Fortran code which are written for matrix manipulations, BLAS, LAPACK and EXPOKIT are truncated and included in the library. Part of the Fortran code is written by Dr. Peng Zhang for facilitating the chemistry-related matrix operations.
This tool is used to compute HDA using Block-Diagonalization method. It has -h
option. -L
takes one argument specifying the name of a .CI file which is used to indicate the donor and acceptor orbital. Degenerate or near-degenerate orbital situation is allowed and needs to be sepecifed in [degenerate]
entry of .CI file. The main input file, following -l
tag, is the CNDO output file. The .ndx input file format is extened from the GROMACS indexing .ndx file format (EIF). It is not only compatible with original GROMACS .ndx format, but can also parse atom sequency specified like
[ donor ]
3 - 10 19 20 - 25
This tools is used to compute HDA using CI-based GMH method. Usage is very similar to cndo2bdiag.
Similar to cndo2gmh, but in this case the GMH calculation is orbital-based, meaning no CI coefficient calculation is needed and corresponding .ORB file should specify the donor and acceptor ORBITAL instead of states.
To convert .dat file which is the input file format for CNDO program into .hsd file format which is used by DFTB+.
To convert .dat file format into Gaussian 09 input (could also with .gjf or .com file extension) file format.
To use DFT Hamiltonian matrix obtained from G09 calculation. To obtain orthongonized Hamiltonian, please refer to rwf2hao.sh
script included in dft3gmh directory.
To perform GMH calculation using DFT Hamiltonian obtained from G09 calculations. This script is written in python and severy other auxiliary python/bash scripts are included here. In order to use these scripts, G09 read-write-files (RWFs) need to be explicitly saved. These scripts are name in a semantic way so that one can easily understand the usage of these scripts.
The g_*2bdiag_d
tools when -g yes
option is specified, will generate block-diagonalized MO. By using g_fakeG09mo_d
, one can feed this type of MO coefficients into GaussView to visualize the orbitals.
One can use g_gmxfreq_d
to calculate the vibrational frequencies and normal modes. By using this tool, one can feed self-calculated frequencies and modes into GaussView to visualize.
To convert Hessian matrix printed in Guassian .fchk file into GROMACS Hessian file format. Note that the unit conversion is done too.
To convert Hessian matrix printed in Guassian .rwf (RWF number 584) file into GROMACS Hessian file format. Note that the unit conversion is done too.
To calculate vibrational modes and associated frequency based on GROMACS-format Hession matrix.
To convert GROMACS .gro format file into CNDO .dat format file.
To convert GROMACS .gro format file into Gaussian 09 input file format.
To convert G09 input file format into CNDO .dat format file.
This tool is at the center of this toolkit since it is responsible for :
- Sampling initial geometry and velocity of molecule;
- and stretching molecular geometry along chosen normal modes.
For the initial sampling, Wigner-like probability distribution function is used to determine the position and velocity while the vibrational levels of non-excited modes are determined based on quantized Boltzmann distribution. Detailed usage info can be displayed by calling g_neqicgen_wigner -h
.
This tool could be used to substitube the solute in one configuration with another solute geometry and remove all the solvent molecules that have van der Waal clash with new solute molecule. The new solute molecule will be rotated and "aligned" according to the original solute molecule orientation.
This tool takes the output files from g_gmxfreq_d
and a EIF file to determine the localization of calculated vibrational modes.
This tool re-organizes the numbering of each atom in a CNDO .dat file according to the ordering provided by user. This is particularly useful in Block-Diagonalization calculations.
Similar to reorgdat but performs on G09 input file.
It takes GROMACS geometry file (.gro file) to remove a shell of solvent molecules. The solvent, solute and the thickness of solvent shell are defined by user.
Rotates the entire configuration based on user's choice. This tool will align the (donor group COM)-to-(acceptor group COM) vector to +z axis and the (donor group COM)-to-(L shape atom) vector to xOz plane.
This tool is a simpler version of GROMACS standard tool g_dist_d. It takes GROMACS .gro geometry file and an EIF and calculate the center-of-mass distances.
All the C code are written by Zheng Ma and part of the Fortran code is contributed by Dr. Peng Zhang as stated above.