ct_analysis
By Pierre Beaujean (pierre.beaujean@unamur.be).
Version 0.2 (Development).
Synopsis
ct_analysis
-
Compute charge transfer (CT) quantities
usage: ct_analysis [-h] [-v] -g GROUND -e EXCITED [-S] [-o OUTPUT] [-D]
[-d DUMMY]
Required arguments:
- -g, --ground
Ground state density
- -e, --excited
Excited state density
Optional arguments:
- -h, --help
show this help message and exit
- -v, --version
show program’s version number and exit
- -S, --square
square cube before make the difference
- -o, --output
difference cube
- -D, --output-with-diff
Store all the densities (total, positive, negative)
- -d, --dummy
Create an xyz file with dummy atoms in positions of both barycenters (negative then positive)
More information
Theory
Based on an implementation of this theory by D. Jacquemin (see supporting informations of the corresponding paper).
The charge in a given region of the space, located by \(\mathbf{r}\) and in an element of volume \(d\mathbf{r}\), is given by
Charges at different point of the space (a “density”) can be obtained by using the
cubegen
utility provided by Gaussian. In particular,
cubegen 0 density=scf x.fchk out.cub
permit to obtain the “density” of the ground state, andcubegen 0 density=ci x.fchk out.cub
permit to obtain the “density” of the excited state.
Note that you need to launch the Gaussian calculations with Density=(all)
so that it stores the CI density
(if you use solvatation, please make sure to use TD=(NonEqSolv)
!).
Let \(\delta q(r)\) be the difference between the charge of the excited and the ground state. This quantity can be splitted into increasing areas and decreasing ones, \(\delta q_+(\mathbf{r})\) and \(\delta q_-(\mathbf{r})\), where
and,
One can therefore compute:
The transferred charge between ground and excited state:
\[q_{CT} = \frac{1}{2}\,\sum_{\mathbf{r}_i} \delta q_+(\mathbf{r}_i) - \delta q_-(\mathbf{r}_i).\]Note that the original papers states that
\[q_{CT} =\sum_{\mathbf{r}_i} \delta q_+(\mathbf{r}_i) =-\sum_{\mathbf{r}_i} \delta q_-(\mathbf{r}_i),\]but the implementation of D. Jacquemin reports and uses the average.
The starting and ending point of the charge transfer, \(\mathbf{r}_+\) and \(\mathbf{r}_-\):
\[ \begin{align}\begin{aligned}\mathbf{r}_+ = \sum_{\mathbf{r}_i} \frac{\mathbf{r}_i\,q_+(\mathbf{r}_i)}{q_{CT}},\\\mathbf{r}_- = \sum_{\mathbf{r}_i} \frac{\mathbf{r}_i\,q_-(\mathbf{r}_i)}{q_{CT}}.\end{aligned}\end{align} \]Those are the barycenters of the positive and the negative densities. The vector between those two barycenter is the charge transfer vector, defined as
\[\mathbf{v}_{CT} = \mathbf{r}_--\mathbf{r}_+.\]In particular, the charge transfer distance is the norm of this vector, \(d_{CT} = |\mathbf{v}_{CT}|\). Notice the usage of the so called chemist convention, where the dipole is defined from positive to negative positions.
The norm of variation of dipole moment between the ground and excited state:
\[|\mu_{CT}| = q_{CT}\,d_{CT}.\]
Implementation
Only works with gaussian cube.
Note that external programs may be abble to generate those as well
(if this is not a density but a probability, like with MO, squaring it gives the density, so use the -S
option).
The program reports \(\mathbf{v}_{CT}\) as well as \(q_{CT}\), \(d_{CT}\), and \(|\mu_{CT}|\).
It allows to save the difference cube (for visualization) and an xyz file containing two dummy atoms (one for each barycenter, first \(\mathbf{r}_-\) and then \(\mathbf{r}_+\)).
Warning
Vector and \(d_{CT}\) are given in Angstrom, \(q_{CT}\) is in |e| (electron charge), and \(|\mu_{CT}|\) is therefore in Angstrom |e|.
Source
T. Le Bahers et al. J. Chem. Theory. Comput. 7, 2498 (2011) 10.1021/ct200308m.
D. Jacquemin et al. Phys Chem Chem Phys. 28, 5383 (2012) 10.1039/c2cp40261k.