||
PS:更新测试中
有时候,我们想把态密度(Density of States (DOS))按照能带进行分类,即计算能带分辨的态密度(Band decomposed DOS (BDOS))。电输运性质主要受费米面(如图1)电子的影响,如果算出了费米能级附近的能带分辨的态密度(BDOS),就可以和实验上的霍尔效应、巨磁电阻获得的电子和空穴载流子浓度进行比较。计算的原理很简单(见后面的原理部分),而不同的第一性原理软件输出的能量本征值的格式都是不一样的,所以如果不采用一个标准文件作为数据输入文件,编写的软件可移植性就很差。用于绘制费米面的BXSF(链接)文件是一个标准能带文件,包含了一个倒空间原包里所有k点的本征值,所以这里提供了一个用MATLAB处理BXSF文件来得到能带分辨的态密度方法。
图1 不同的能带构成的费米面
原 理:在E-E+ΔE范围内第i条能带的能态数目为ΔZi(E),总能态数目为ΔZ(E) = Σ ΔZi(E),则每条能带对态密度的贡献(BDOS):
则总态密度为:
脚本和例子:Band_decomposed_DOS.zip
步 骤:
1. 使用较密的k点网格用第一性原理软件生成BXSF文件。
2. 设置输入文件input.in参数,各个参数的含义如下所示:
-5 %energy_windows_min 5 %energy_windows_max 800 % ndiv 8 %Adjacent, 0 stands for no smearing. 0 %SPIN, 0 stands for no spin, 1 stands for spinincluded |
其中,前两个参数(-5和5)代表输出的能量窗口的下限和上限(已经将费米能级移动到0)。第三个参数ndiv表示能量划分的份数,ΔE=(energy_windows_max- energy_windows_min)/ndiv。第四个参数Adjacent为态密度平滑参数,这里采用是Adjacent-Average的方法,也就是将一个数及其前后Adjacent个数的平均值作为平滑后的值,设置为0的时候不平滑。如果DOS起伏比较大或比较粗糙的情况下,建议设置Adjacent这个参数。一般情况下,ndiv大的时候也需要将Adjacent这个参数调大,建议Adjacent/ndiv比值设在0.01左右。最后一个为SPIN参数,0代表为没有包含自旋,1代表计算中考虑自旋。
3. 运行Band_decomposed_DOS.m,此时会弹出第一个“选择要打开的文件”对话框,选择BXSF文件。紧接着会弹出第二个“选择要打开的文件”对话框,选择input.in文件。运行结束后会生成一个“BXSF文件名+_BDOS.dat”的文件。这个文件的第一行为能量(已经将费米能级移动到0),中间的各列为每条能带的态密度(BDOS),最后一列为总的态密度。
4. 将数据用Origin或其他绘图软件进行绘图。将总的态密度和第一性原理计算的DOS进行比较,调节Adjacent参数直到获得较平滑和准确的DOS图。最后效果图如图2所示。
图2 能带分辨的态密度(BDOS)(DOS.X为用DFT后处理软件计算的总DOS)
说 明:
1. 本程序只是提供一个程序设计思路,也可以在其思想上用其他语言下编写程序;针对本程序有任何问题或改进方法请@我。
2. 反复调节Adjacent参数直到总态密度和第一性原理软件相同为止,新版本将使用更好的算法,省去此步繁琐的过程,敬请期待。也可以使用较小的Adjacent得到BDOS后使用MATLAB的smooth函数或者Origin的平滑功能对数据进行平滑。如果您有更好的平滑方法请和我联系。
3. 一般的BXSF文件只是输出费米能级附近的几条能带,如果想计算远离费米能级的BDOS就需要将更多能带包含到BXSF文件中。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-28 12:32
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社