本文针对软件版本为AMS2019.3及之前的版本,AMS2020以后的版本请参考链接:函数沿某个方向的数值分布
使用densf和adfreport,可以输出密度、动能密度、Laplacian、密度梯度、密度Hessian、静电势、分子轨道、NOCV轨道、NCI、SEDD在空间,沿着某个方向的数值分布。
这里以$F_2$的电子密度沿着键的方向的分布为例:
注意由于显示函数数值的空间分布,需要确定的坐标,因此建模的时候,原点在什么地方,xyz轴的方向,都需要非常清楚。
Input - View -Axes显示坐标系。选中两个F原子,Edit - Align - with z-Axes),设置键的方向为z轴。然后选中两个F原子,Edit - Set Origin),设置$F_2$中心为原点:
为了简单起见,可以设置Details > Symmetry > Symbol:Nosym,去掉对称性,便于用户直观地设置希望显示数据的坐标点。
保存任务后,修改生成的*.run文件,在底部增加如下内容:
$ADFBIN/densf << eor Grid Save 0.0 0.0 -1.0 300 0.0 0.0 1.0 2.0 End Density SCF eor echo "Density:" $ADFBIN/adfreport TAPE41 -r 'SCF%Density #14.8f##1' echo "z-values:" $ADFBIN/adfreport TAPE41 -r 'z values%z values #14.8f##1'
下面依次解释上述代码的含义:
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 frag,则表示保存的是片段的电子密度直接加和的值。
有这一段代码,程序就会计算相应的坐标,以及该坐标下,指定的这个物理量的数值。计算完毕之后,在*.t41文件中,就可以找到这些数值。
注意:坐标值目前的输出单位是原子单位,而我们在上面代码中,指定坐标的时候,是以埃为单位。
Density SCF eor
这里是打印自洽迭代得到到电子密度。如果要打印分子轨道,可以用这样到格式:
Orbitals scf all HOMO-1 LUMO+1 END
表示分别计算“HOMO-1”~“LUMO+1”,总共4个轨道,在指定格点上到数值。在
下面这段代码,只是为了将*.t41中的内容,打印到*.out便于制图而已(直接在kfbrowser中查看到到数据,不是一列排好的,因此不方便提取数据用于作图):
echo "Density:" $ADFBIN/adfreport TAPE41 -r 'SCF%Density #14.8f##1' echo "z-values:" $ADFBIN/adfreport TAPE41 -r 'z values%z values #14.8f##1'
用户在ADFjobs窗口双击对应的*.41文件,之后在打开*.t41文件的窗口中,点击菜单栏File > Expert Mode可以看到生成了那些数据。这段代码,显示的实际就是这些数据。其中电子轨道的数据在“SCF“这一栏中,点开可以看到对应的轨道序号数字,点开即为轨道在指定格点的值。
echo “Density:” 这一行没有特别的作用,只是为了在out文件中输出一行文字“Density:“。echo “z-values:“的功能也是类似,输出一行文字“z-values:”。计算结束后,在out文件可以看到对应的内容。
“Density:“下一行,就开始根据如下命令:$ADFBIN/adfreport TAPE41 -r 'SCF%Density #14.8f##1'输出内容,显示*.t41中,SCF这一段中的Density数据。
所有可以显示的物理量的名字列表如下(电子密度、动能密度、Laplacian、密度梯度、密度Hessian、势、分子轨道、NOCV、NCI、SEDD,其中势可以根据其后的参数,设定为静电势或者交换相关势等):
Density ... KinDens ... Laplacian ... DenGrad ... DenHess ... Potential ... Orbitals ... NOCV ... NCI ... SEDD
前面densf保存的数值,默认状态下,是存储到TAPE41文件里面的,因此这里打印来自TAPE41文件的Density这个量里面的SCF段(说明:双击打开*.t41之后,File > save as ASCII之后,可以得到一个文本文件,打开之后,可以看到名为SCF的这一段),这个段刚好是上面保存过的。#14.8f##1是打印的格式,占用14位其中小数点后有8位数,每行输出一个数字。
在out文件的尾部,可以看到
Density: 1.15212256 1.18296585 1.21433504 1.24645736 1.27965563 1.31437572 1.35122118 1.39099645 1.43476093 1.48389657 ......
可以直接复制到Excel里面。 再往下拉,可以看到:
z-values: -1.88972612 -1.87708582 -1.86444551 -1.85180520 -1.83916489 -1.82652458 -1.81388427 -1.80124397 -1.78860366 -1.77596335 ......
说明: