使用AICD 2.0绘制磁感应电流图

注:鉴于有人表示使用AICD2.0失败,这里提供个文件包,是苯体系的Gaussian输入输出文件以及AICD2.0计算后产生的所有输出文件,运行不成功者自行仔细对照弄清楚原因:294-benzene.rar

如果在G16上运行不成功,或者结果异常,可参考此帖http://bbs.keinsci.com/thread-13577-1-1.html


使用AICD 2.0绘制磁感应电流图

文/Sobereva @北京科音

First release: 2015-Jun-13  Last update: 2019-Jun-22


以前写过一篇帖子《使用AICD程序研究电子离域性和磁感应电流密度》(http://sobereva.com/147),那个帖子当时用的是1.5.7.1版。AICD本身用起来简单,但是使用前必须自行编译高斯,这使得绝大部分用户都无缘使用AICD。好在从Gaussian09 D.01开始直接提供了IOp(10/93)选项来输出AICD所需的电流密度张量数据,并且AICD 2.0版开始可以直接读取这些数据绘图,比原先实在方便太多了,这使得AICD能够广泛普及开来。这个帖子就说下AICD 2.0结合G09 D.01的使用方法。老版本的AICD的输出文件和各个选项在2.0版里完全没变,2.0也没有什么新增的选项,所以本帖仅仅用薁分子做个演示,更多内容请看上面的帖子。


1 编译AICD 2.0

AICD 2.0可以在这里下载:/usr/uploads/file/20150614/20150614195659_51424.zip

确保系统里有gcc编译器。将AICD 2.0解压到任意一处,比如/sob/AICD/AICD-2.0.0,然后进入此目录,输入make进行编译。然后在用户目录的.bashrc文件里添加alias AICD=/sob/AICD/AICD-2.0.0/AICD。重新登录终端或输入bash使之生效。现在就可以在任意目录下直接通过AICD命令调用AICD了。


2 计算薁

输入文件azulene.gjf内容如下。NMR=CSGT必须写,IOp(10/93=1)代表输出电流密度张量到坐标后面的那个文件里,此例是test.txt。

%chk=./azulene.chk
# b3lyp/6-31g(d) nmr=csgt iop(10/93=1)

b3lyp/6-31g(d) opted

0 1
 C                  0.00000000    0.00000000    2.50418951
 C                  0.00000000    1.26637425    1.91156618
 C                  0.00000000    1.59417912    0.55241750
 C                  0.00000000   -1.26637425    1.91156618
 C                  0.00000000    0.75015229   -0.55452268
 C                  0.00000000   -1.59417912    0.55241750
 C                  0.00000000   -0.75015229   -0.55452268
 H                  0.00000000    0.00000000    3.59316833
 H                  0.00000000    2.10900376    2.59929497
 H                  0.00000000    2.66005032    0.32418052
 H                  0.00000000   -2.10900376    2.59929497
 H                  0.00000000   -2.66005032    0.32418052
 C                  0.00000000    1.15011348   -1.90182297
 H                  0.00000000    2.17701495   -2.24803140
 C                  0.00000000    0.00000000   -2.70850570
 H                  0.00000000    0.00000000   -3.79360290
 C                  0.00000000   -1.15011348   -1.90182297
 H                  0.00000000   -2.17701495   -2.24803140

test.txt


 

用g09 < azulene.gjf > azulene.out运行此文件,在当前目录下得到azulene.out和test.txt。


3 产生感应电流图

我们把外磁场垂直于环平面加。若打开azulene.out会看到垂直于分子平面的是x轴,即外磁场矢量应为1 0 0。我们输入
AICD -m 4 -b 1 0 0 -pov azulene.out
此时AICD就会根据azulene.out和test.txt里的信息生成AICD格点数据,并且产生文件名以azulene_40000_0.050_1_0_0_Aniso_4.4为开头的5个文件。将这5个文件拷到Windows系统下,安装好Povray渲染器,然后打开RenderMich.pov后缀的那个,渲染,即得到下图,包含多个视角:

可见是有明显环电流产生的。


4 只获得特定轨道的贡献

也可以只获得特定轨道对AICD的贡献,写上IOp(10/93=2),并且在输入文件末尾写上要考虑的轨道编号即可。

比如薁这个分子,我们想得到所有pi轨道对AICD的贡献。首先我们先找出pi轨道编号,虽然可以挨个看轨道图来找,但对于轨道比较多的体系会比较劳神。对于薁这样纯平面的体系找pi轨道的最方便的方法是用Multiwfn (http://sobereva.com/multiwfn)。将薁这个体系的fch文件载入Multiwfn,依次输入100、22、2(因为当前体系平行于YZ平面)。程序马上就给出了所有pi MO的编号,我们把占据数为2.0的那5个复制到前面azulene.gjf的末尾去(从命令行窗口直接复制数据的操作见Multiwfn手册5.4节)。此时azulene.gjf内容如下

%chk=./azulene.chk
# b3lyp/6-31g(d) nmr=csgt IOp(10/93=2)

b3lyp/6-31g(d) opted

0 1
[坐标,略]

test.txt

26
31
32
33
34

 

用前述方法绘图,结果如下


顺带十分值得一提的是,用上面的做法不仅可以得到不同轨道对AICD的贡献,也可以得到不同轨道对磁屏蔽值、磁化率的贡献(即它们可以严格分解成轨道的贡献)。比如某体系有13个轨道,用上面的关键词,分别选择1-5号轨道,以及6-13号轨道,二者得到的磁屏蔽值或者磁化率的加和,和直接算整体时的结果是一样的。因此,可以利用这个方法考察NICS-sigma和NICS-pi。

对于非平面体系,没法严格定义哪些是sigma轨道、哪些是pi轨道,或者说判断pi轨道的方式有很大含糊性、人为任意性。但是也没关系,强大的Multiwfn可以给出各个轨道的pi成份,超过特定阈值(比如80%)的轨道你都可以姑且当做pi轨道。关于怎么用Multiwfn计算pi成份,看《Multiwfn已支持计算任意轨道的pi成份》(http://bbs.keinsci.com/thread-13110-1-1.html)。


如果对本文有任何不清楚的地方,或者想弄明白AICD的各种选项、细节以及相关理论,请看《使用AICD程序研究电子离域性和磁感应电流密度》(http://sobereva.com/147)。

有另外一个也非常知名、常用的考察环电流的程序叫GIMIC,与AICD有很强的互补性,强烈建议读者仔细看《考察分子磁感生电流的程序GIMIC 2.0的使用》(http://sobereva.com/491)。