Generate natural transition orbitals (NTOs) from Gaussian 09 TDDFT calculations
The original facilities for NTO generation in G09 suffers some problems. This script extends R. Martin's idea to tackle both restricted and unrestricted calculations. Using large diffuse basis sets might result in incorrect dimensions for the matrices used in the singular value decomposition (SVD), which encountered in G09. We also resolved this issue.
The formed checkpoint file contains everything required to generate molecular orbital (MO) spatial distributions. The cubgen utility distributed in the G09 package can used to generate Gaussian cube format densities. NTOs have the same mathematical representation with MOs, which are linear combinations of the basis used in the calculation. The only difference is the combination coefficients.
In this script, we just read the transition matrix (T) from the *.log file, perform a SVD, followed by linear transformation of the occupied/virtual MO coefficient matrix. The obtained matrix contains combination coefficients for the NTOs expanding in the same Hilbert space.
Replace the MO coefficients in the *.fchk by the new sets of NTO coefficients, and save to a new fchk file. This new file can be used to generate NTO by invoking the cubgen utility.
The script requires two files generated by G09 excited state calculation:
- the output
*.logfile: using TDDFT/TDA/CIS or other methods, and add a promptIOp(9/40=7)in the route line. Please consult G09 manual for details. - the formatted checkpoint file
*.fchk: format the binary*.chkby using theformchkutility.
- Python 2.7+ or 3.5+
- numpy 1.10+