目录

函数沿某个方向的数值分布

使用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

下面依次解释上述代码的含义:

1,输入、输出

2,指定需要打印的坐标

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行矢量的方向、长度。

3,指定需要打印的数据

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之类,控制打印范围。

4,结果查看

用户在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中自行处理即可。

参考资料

https://www.scm.com/doc/ADF/Input/Densf.html