使用densf和adfreport,可以输出密度、动能密度、Laplacian、密度梯度、密度Hessian、静电势、分子轨道、NOCV轨道、NCI、SEDD在空间,沿着某个方向的数值分布。
这里以F2的电子密度沿着键的方向的分布为例:
注意由于显示函数数值的空间分布,需要确定的坐标,因此建模的时候,原点在什么地方,xyz轴的方向,都需要非常清楚。
Input - View -Axes显示坐标系。选中两个F原子,Edit - Align - with z-Axes),设置键的方向为z轴。然后选中两个F原子,Edit - Set Origin),设置F2中心为原点:
为了简单起见,可以设置Details > Symmetry > Symbol:Nosym,去掉对称性,便于用户直观地设置希望显示数据的坐标点。
保存任务后,修改生成的*.run文件,在底部增加如下内容。如果任务计算已经完成了,只是欠缺提取数据,则可以单独创建*.run文件如下,然后运行即可:
$AMSBIN/densf << eor inputfile D:\ADF_DATA\spinor.results\adf.rkf outputfile D:\ADF_DATA\spinor.results\adf.t41 Grid Save 0.0 0.0 -1.0 300 0.0 0.0 1.0 2.0 End Density SCF eor
下面依次解释上述代码的含义:
Grid Save 0.0 0.0 -1.0 300 0.0 0.0 1.0 2.0 End
表示保存某个量的值,空间坐标从(0.0 0.0 -1.0)开始,沿着(0.0 0.0 1.0)方向,长度为2.0埃。数字300这一行,表示这一个坐标范围内,均匀地生成300个点的数值。当然可以同时保存N个方向,这样的话,这一行就需要N个整数,下面需要N行矢量的方向、长度。
Density SCF
Density SCF表示保存电子密度自洽迭代后得到的数值,如果是Density frag,则表示保存的是片段的电子密度直接加和的值。
有这一段代码,程序就会计算相应的坐标,以及该坐标下,指定的这个物理量的数值。计算完毕之后,在*.t41文件中,就可以找到这些数值。
注意:坐标值目前的输出单位是原子单位,而我们在上面代码中,指定坐标的时候,是以埃为单位。
如果要打印分子轨道,可以用这样到格式:
Orbitals scf all HOMO-1 LUMO+1 END
表示分别计算“HOMO-1”~“LUMO+1”,总共4个轨道,在指定格点上的数值。当然也可以用HOMO-8,HOMO-100,LUMO+11之类,控制打印范围。
用户在AMSJobs窗口双击对应的*.41文件,之后在打开*.t41文件的窗口中,点击菜单栏File > Expert Mode可以看到生成了那些数据。其中电子密度的数据在“SCF“这一栏中,点开可以看到对应的轨道序号数字,点开即为轨道在指定格点的值:
以及坐标值(这里我们关心z值)
注意这里数据的单位是原子单位波尔,1 bohr= 0.52917721067 Å
所有可以显示的物理量的名字列表如下(电子密度、动能密度、Laplacian、密度梯度、密度Hessian、势、分子轨道、NOCV、NCI、SEDD,其中势可以根据其后的参数,设定为静电势或者交换相关势等):
Density ... KinDens ... Laplacian ... DenGrad ... DenHess ... Potential ... Orbitals ... NOCV ... NCI ... SEDD
如果用户想打印的是NOCV def density,实际上可以先打印NOCV,得到的是“本征值*NOCV orbit的平方”。因此可以将NOCV pair相关的两个NOCV编号都打印出来,然后人工相加即可得到NOCV def density。
#!/bin/sh "$AMSBIN/ams" << eor Task SinglePoint System Atoms O 0.0 0.0 0.745 O 0.0 -0.0 -0.745 End BondOrders 2 1 1.0 End End Engine ADF Basis Type DZP Core None End SpinPolarization 2 XC GGA BP86 End Unrestricted Yes EndEngine eor $AMSBIN/densf << eor inputfile D:\ADF_DATA\NormalTask\a.results\adf.rkf outputfile D:\ADF_DATA\NormalTask\a.results\adf.t41 Grid Save 0.0 0.0 -1.0 301 0.0 0.0 1.0 2.0 End Orbitals scf SIGMA.g 2 END eor
其中
Orbitals scf SIGMA.g 2 END
指定打印SIGMA.g不可约表示的第2个轨道。
计算完毕,结果查看: 双击AMSJobs窗口文件列表中对应的*.t41文件,然后File - Expert Mode,可以在SCF_SIGMA.g_A ➡ 2中看到301个数值,在z values ➡z values看到对应的坐标z值(注意原子单位bohr需要换算成Å)。另外这里打印的轨道是有正负相位的,用户也许更关心其平方(即密度),可以在excel中自行处理即可。