计算化学公社

标题: vaspkit导出PDOS图“杂峰”过多问题求解 [打印本页]

作者
Author:
gg302694005    时间: 2021-5-14 13:19
标题: vaspkit导出PDOS图“杂峰”过多问题求解
各位老师好,本人vasp计算小白,近期在用vaspkit导出dos图分析时发现,我导出的TDOS图与Fe-d、O-p与N-p的PDOS图有很多的“杂峰”,之前自己将计算时的KPOINTS由3*3*1逐步增加到20*20*1都还存在该问题,我计算的TDOS与各元素的PDOS图如附件所示,同时附件还提供了DOS图原始数据,与计算DOS的输入文件,请各位老师大神帮忙看一下,出现这么多杂峰的问题的原因出在哪里呢?非常感谢!
(, 下载次数 Times of downloads: 50) (, 下载次数 Times of downloads: 58) (, 下载次数 Times of downloads: 57) (, 下载次数 Times of downloads: 50)

作者
Author:
卡开发发    时间: 2021-5-14 13:31
非自洽的时候给些展宽(sigma)试试。
作者
Author:
physics_xw    时间: 2021-5-14 14:21
设置ISMEAR=0,SIGMA=0.2 (或0.1,0.05)试试。
INCAR参数设置问题,和vaspkit关系不大。
作者
Author:
gg302694005    时间: 2021-5-14 17:30
卡开发发 发表于 2021-5-14 13:31
非自洽的时候给些展宽(sigma)试试。

好的谢谢老师,我试试看
作者
Author:
gg302694005    时间: 2021-5-14 17:30
physics_xw 发表于 2021-5-14 14:21
设置ISMEAR=0,SIGMA=0.2 (或0.1,0.05)试试。
INCAR参数设置问题,和vaspkit关系不大。

谢谢老师,我试试看

作者
Author:
MisakaFaction    时间: 2021-5-15 16:54
鉴于你用的ISMEAR=-5,我认为此结果十分正常,不需要任何修改,不影响正确性。
如果非要圆滑一点,可按楼上方案修改,但并不会更正确,而且其实牺牲了一点精度,虽然大多数情况下无关紧要。

作者
Author:
gg302694005    时间: 2021-5-17 10:55
MisakaFaction 发表于 2021-5-15 16:54
鉴于你用的ISMEAR=-5,我认为此结果十分正常,不需要任何修改,不影响正确性。
如果非要圆滑一点,可按楼 ...

谢谢老师解答,我已按照楼上老师的方式解决了问题,因为很多参考文献里面的DOS峰值都是相对平滑的,ISMEAR=-5时做出的峰不利于分析。您的解答让我明白了其中缘由,非常感谢!
作者
Author:
卡开发发    时间: 2021-5-17 11:35
gg302694005 发表于 2021-5-17 10:55
谢谢老师解答,我已按照楼上老师的方式解决了问题,因为很多参考文献里面的DOS峰值都是相对平滑的,ISMEA ...

正常算态密度其实用ismear=-5或0(金属系统可以用0~2)都是可以的,有展宽的情况只要sigma足够小k足够大都能保证合理结果,相应的标准可以检查电子熵。绘图的角度说,可以在非自洽部分给足够的展宽(因为电荷密度还是用自洽阶段的),也可以是这种无展宽或小展宽的图自己写程序进行展宽,定性上影响没那么大。
作者
Author:
gg302694005    时间: 2021-5-17 17:18
卡开发发 发表于 2021-5-17 11:35
正常算态密度其实用ismear=-5或0(金属系统可以用0~2)都是可以的,有展宽的情况只要sigma足够小k足够大 ...

非常感谢老师解答
作者
Author:
robert    时间: 2021-5-26 16:46
卡开发发 发表于 2021-5-17 11:35
正常算态密度其实用ismear=-5或0(金属系统可以用0~2)都是可以的,有展宽的情况只要sigma足够小k足够大 ...

可以请教一下这种对已经算得的图,自己进行展宽的程序应该怎么写吗~
作者
Author:
卡开发发    时间: 2021-5-26 17:33
robert 发表于 2021-5-26 16:46
可以请教一下这种对已经算得的图,自己进行展宽的程序应该怎么写吗~

严格一些的话应该是将各个k中的能级对应的占据数按照权重求和来得到某个能量区间的占据数,然后用给定展宽的函数叠加起来。与MultiWfn手册的3.12.1描述应该相同,区别就是各个能级需要将不同k的贡献按照权重累加起来而已,而非周期边界可以认为k只有(0,0,0)的贡献。
作者
Author:
robert    时间: 2021-5-26 20:09
卡开发发 发表于 2021-5-26 17:33
严格一些的话应该是将各个k中的能级对应的占据数按照权重求和来得到某个能量区间的占据数,然后用给定展 ...

谢谢前辈回复,不知道下面写的是否完备(matlab写的)
dos = tdosDOWN;
a=0.025;
sigma = 0.1;
sig= (1/(sqrt(3.1415)*sigma) );
dos_sum = 0;
for i=1:3000
    for j=1:3000
        dos_i(j)= sig *  exp(- ((j*a-i*a)^2)/(2*sigma) ) * dos(i);
    end
    dos_sum = dos_sum+dos_i;
    dos_i = 0;
end
plot (dos_sum)
作者
Author:
卡开发发    时间: 2021-5-26 20:23
robert 发表于 2021-5-26 20:09
谢谢前辈回复,不知道下面写的是否完备(matlab写的)
dos = tdosDOWN;
a=0.025;

dos应该返回的是数组,应该不是这样处理。
作者
Author:
granvia    时间: 2021-5-26 20:47
robert 发表于 2021-5-26 20:09
谢谢前辈回复,不知道下面写的是否完备(matlab写的)
dos = tdosDOWN;
a=0.025;

在matlab网站上搜下现成的Gaussian或Lorentz convolution的函数代码
作者
Author:
robert    时间: 2021-5-26 21:11
卡开发发 发表于 2021-5-26 20:23
dos应该返回的是数组,应该不是这样处理。

好的好的,谢谢前辈指教~
作者
Author:
robert    时间: 2021-6-27 22:54
granvia 发表于 2021-5-26 20:47
在matlab网站上搜下现成的Gaussian或Lorentz convolution的函数代码

噢噢,对,应该是有写好展开的code的,感谢感谢~




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3