用户工具

站点工具

本页面的其他翻译:
  • zh

adf:valuealongline_band2019

周期性体系中,物理量沿某个方向的数值分布

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关键字可以替换为其它关键字:

  • OrbitalPlot
  • DensityPlot
  • NOCVdRhoPlot
  • NOCVOrbitalPlot

计算一般的物理量,例如静电势,可以用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

表示:

  • 从坐标为0.0 0.0 -3.355的点开始,沿着 0.0 0.0 1.0方向(也就是C方向),每隔0.03355埃输出一个数值,总共计算200个坐标点。
  • 沿着1.0 0.0 0.0方向(也就是A方向)和0.0 1.0 0.0方向(也就是B方向)只计算一个点。
  • 最后一行 1 1 200表示A、B、C三个方向计算的点的个数分别是1、1、200。
  • 第2、3、4行的第四个数字表示步长,如果A、B方向只算1个点,步长就没有意义了所以设置为1

$ADFBIN/adfreport TAPE41 -r 'FOO%rho #14.8f##1'表示:

  • 将*.t41文件中FOO字段里面的rho数据列出。
  • 实际上就是我们打印的密度。
  • 用户也可以直接打开*.t41 > File > Expert Mode,点开这些名称的数据,可以看到有一个部分叫做FOO,里面有一段叫做rho。
  • 如果是其它数据,名字不清楚的,也可以这样直接打开*.t41文件,找到对应的名字,然后修改到脚本里面。
  • #14.8f##1是打印的格式,也就是总共14位,其中小数点后面8位,用户自行可以修改。

结果查看

在*.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三个方向的步长、点数。

adf/valuealongline_band2019.txt · 最后更改: 2020/12/02 18:02 由 liu.jun

© 2014-2022 费米科技(京ICP备14023855号