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

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

文/Sobereva(3)

First release: 2015-Jun-13  Last update: 2017-May-18


以前写过一篇帖子《使用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号轨道,二者得到的磁屏蔽值或者磁化率的加和,和直接算整体时的结果是一样的。


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

已有 6 条评论

  1. wwz

    上传一个最新版的AICD 2.0吧

    1. sobereva

      已经添加到第一节了

  2. wuy069

    卢老师好!按您压缩包里解压后,然后make;当然alias也做好了,刷新环境变量source ~/.bashrc
    之后使用您提供的例子benzol.nmr.gjf,使用Gaussian09 D01计算。
    最后使用AICD计算:AICD -m 2 -rot 90 0 0 -b 1 0 0 -runpov benzol.nmr.log
    这时运行10秒左右,最后出现如此错误:/home/wuy/AICD-2.0.0/AICD: line 721: povray: command not found

    请问这是make编译时根本没编译povray吗?我在Makefile里面找povray也没找到啊;cat Makefile |grep povray这时没有输出。

    1. sobereva

      povray是第三方渲染器。建议在windows下装个povray,把AICD得到的pov文件放到windows下用povray打开,然后选渲染。http://sobereva.com/147这里写得更详细

  3. scfslyzkf

    请问sob老师,test.txt文件里保存的是什么数据?

    1. sobereva

      产生AICD图像所需要的一些原始数据

评论已关闭