AMS中,BAND模块专注于材料化学方面的计算。
BAND完成一个单点计算后,生成*.runkf文件,用于存储各种空间分布函数。可以重新生成一个脚本,使用restart关键词,读取前面计算得到的*.runkf文件,然后用Grid关键字与DensityPlot关键字结合,在*.out中输出沿着指定方向的某个物理量的数值分布。
这里我们以三维周期性石墨烯单层(晶格的A、B、C方向均具有周期性)的电子密度为例,进行演示。
基本参数设置与常规计算没有差别:
可以看看晶格常数:
看到C方向晶格常数为6.71埃(我们下面会尝试研究坐标0, 0, -3.355到0, 0, 3.355之间,长度为6.71埃的范围的电子密度)。
结合窗口左边(选中所有原子,Edit > Set Origin,从而原子位于晶胞正中,然后View > Periodic > Show UnitCell,看看晶胞的形状),可以看到原子处于晶胞的正中(这不是必须的,但坐标设置的标准一些,可以更方便地让我们确定需要关心的哪一段距离的数值)。然后我们看看原子的坐标:
保存任务。
打开*.run文件,可以看到类似如下内容:
#! /bin/sh "$ADFBIN/band" <<eor TITLE Untitled NumericalQuality Normal UNITS length Angstrom angle Degree END ATOMS C -0.00000000 0.71014083 0.00000000 C 0.00000000 -0.71014083 0.00000000 END Lattice 1.23 -2.130422493 0.0 1.23 2.130422493 0.0 0.0 0.0 6.71 End BasisDefaults BasisType DZP Core None End XC GGA PBEsol END end input eor
这部分代码会生成RUNKF文件,我们将在这段代码的尾部添加另外的代码。在后面添加的部分,参数与前面一致,所以可以直接复制过来,然后在里面增加restart、grid、DensityPlot、adfreport等字段,如下:
mv RUNKF 2.runkf "$ADFBIN/band" <<eor TITLE Untitled NumericalQuality Normal UNITS length Angstrom angle Degree END ATOMS C -0.00000000 0.71014083 0.00000000 C 0.00000000 -0.71014083 0.00000000 END Lattice 1.23 -2.130422493 0.0 1.23 2.130422493 0.0 0.0 0.0 6.71 End BasisDefaults BasisType DZP Core None End XC GGA PBEsol END Restart File 2.runkf DensityPlot End DensityPlot rho End Grid 0.0 0.0 -3.355 1.0 0.0 0.0 1 0.0 1.0 0.0 1 0.0 0.0 1.0 0.03355 1 1 200 End eor $ADFBIN/adfreport TAPE41 -r 'FOO%rho #14.8f##1'
两段代码合并在一起,成为整个脚本来运行。其中,
mv RUNKF 2.runkf
是把前面的任务生成的RUNKF改名为2.runkf,用户可以根据需要设置为其它名字(不要有中文、空格)。
Restart File 2.runkf DensityPlot End
表示从前面生成的2.runkf文件,用于作图。DensityPlot关键字可以替换为其它关键字:
计算一般的物理量,例如静电势,可以用DensityPlot。
DensityPlot rho End
表示作图的数据为rho。rho表示电子密度,其它物理量对应的名字,参考:物理量列表
Grid 0.0 0.0 -3.355 1.0 0.0 0.0 1 0.0 1.0 0.0 1 0.0 0.0 1.0 0.03355 1 1 200 End
表示:
$ADFBIN/adfreport TAPE41 -r 'FOO%rho #14.8f##1'表示:
在*.out文件的最底部,将会列出这200个数据,也就是我们计算的这200个点的电子密度值。坐标呢?我们可以直接在Excel里面生成(xy轴坐标为0,z轴坐标起始值为-3.355,后面一个数据=前一个数据+0.03355):
输入公式之后回车,然后鼠标移动到该数据的右下角变成十字标志之后,按住左键向下拖动,则自动得到数据递增0.03355。
之后即可用Excel或其它软件生成曲线图。
例如静电势分布,用户可以修改如下关键字: rho修改为v(coulomb):
DensityPlot v(coulomb) End
以及FOO%rho改为FOO%v(coulomb):
$ADFBIN/adfreport TAPE41 -r 'FOO%v(coulomb) #14.8f##1'
其它物理量参考物理量列表类似修改。
二维晶格、一维晶格没有任何区别,Grid的格式和三维晶格是一样的,也一样需要指定ABC三个方向的步长、点数。