通常对于一个经费不是那么充足,即没什么经费的计算模拟课题组来说(我没说我组,没说),究竟整几台服务器是个大问题。服务器的使用又经常会出现以组会为周期特征,以审稿意见为诱发因子的使用高峰期,和相应的低峰期,难以互补。故而云超算平台就可以作为很好的润滑剂来使用。因此,步入科研生活之初,我就遍求天下超算,终于发现了宝藏云——北鲲云。
北鲲云能够基本满足一切我等对超算的幻想,对于导师来说,最重要的肯定是便宜,便宜,和便宜;对于学生来说,最重要的则是简单,简单,傻瓜式的简单。
前者我们可以在后续的计算中管窥一斑,后者,大家点开北鲲云的主页注册一下,登录控制台看一看就知道了。所有过程都是点一点、拖一拖,无脑式完成。并且注册所赠送的算力金,真的够计算出不少东西的。改变了我对超算存有过的偏见。
在本文中,我来做一系列简单的声子谱和分析,来为大家演示在宝藏云中一站式科研的全过程。对于材料模拟来说,确定它的动力学稳定性是非常关键的一点。声子谱G点下的小小虚频,也是无数人的噩梦。但实际上即便是计算“出错”的声子谱,也是包含很多信息的,这一点我还尚在学习,将一点心得与此计算过程一切记录下来。
我们来计算三维体材料ZnO在常压下和19Gpa静水压下的声子谱,每一个声子谱计算对他进行k点的测试,最后我们将声子谱对不同原子进行投影,进一步分析他的晶格振动情况。
a) 建模:正巧在进行试算的时候重装了系统,一时半会没有MS用,所以建模则在北鲲云的windows工作站节点下运行。进行计算的是六角纤锌矿结构Zn0(P63mc)
相当的酷炫,也很流畅,对于我来说,MS只用来建模,所以装一个几个G的东西,很划不来,调用一个4核节点,一小时3毛2,我一度想尝试安装一个自定义软件试试。(譬如荒野大镖客)
a) 常压优化INCAR 与 晶格常数
晶格常数:3.165(a、b),5.106(c)
b) 190Gpa INCAR 与 晶格常数。
晶格常数:3.165(a、b),5.106(c)
我专门上vasp论坛看过,静水压的单位KB = 0.1Gpa。(见附件,可以找大鱼获取)
对两种晶格,按网传的10埃米原理,进行3-4-2的扩胞,共96个原子。
对得到的超胞在1x1x1,2x2x2,3x3x3点网格下进行声子谱计算,以查看其收敛情况。声子谱输入文件如下:
在进行1x1x1(即单G点)计算时,我们可以采取单G点版本来计算,以缩短计算时间。只要简单的把提交任务脚本中的vasp_std 修改为 vasp_gam。(记得在计算更大k点的时候要调回来),另外涂抹方案如-5,是不支持低k点计算的。
真正开展计算的时候,这96原子的单点计算,我调用了一个64核的节点,20分钟左右就算完了,全部的六个算完抛去失误算错的部分只在百元附近。
a)在计算所得的声子谱目录下,调用phonphy,提取力常数
phonopy --fc vasprun.xml
b)再编写bond.conf文件,并键入命令,获得band.yaml文件
文件
ATOM_NAME =Zn O
DIM = 3 4 2
NPOINTS = 301
BAND = 0.000000 0.000000 0.000000 0.000000 0.000000 0.500000 0.333333 0.3333333 0.000000 0.000000 0.000000 0.000000
FORCE_CONSTANTS = READ
EIGENVECTORS = .TRUE.
BAND_POINTS = 301
命令如下:
phonopy --dim="3 4 2" -c POSCAR-unitcell -p band.conf
c)此时,我们调用后处理神器vaspkit1.12,调用73-739,得到声子谱在各原子中的权重。
d)这时,我们暂时先不管权重,绘制普通的声子谱。
从上到下 :常压和19Gpa的声子谱、局域放大
可以看到三个k点所计算出的声子谱基本叠在一起,不放大几乎不能分辨,说明此时的收敛程度还是不错的。在19Gpa压强下,声子谱的样式并无太大变化,而是整体“升高”了许多,说明此时他还是稳定的,某学报上刊登的文章计算出19Gpa下有围绕在g点附近的小虚频,我认为可能是收敛问题,或者是泛函问题。
这里的结果也说明,大多数情况下单G点的计算结果就能说明很多问题,所以我经常先用单g点声子谱计算粗略的试探其稳定性。
e)我们进一步绘制投影声子谱来分析不同原子的贡献,我们用vaspkit提取出来的数据有
就是按POSCAR顺序排布的,Zn,Zn,O,O的投影情况。每个文件前两列为声子谱图像,后面为权重。此时我们只要选取一个Zn和O原子的文件,即1,3来画投影图即可。可将数据导入origin利用其权重气泡图功能,手搓半天绘制此图。
但是,经常面对大量材料的我们,手搓浪费生命,现在向大家介绍我针对vaspkit后处理结果所写的外行看了嘬牙,新手看了叹气,老手看了脑淤血的后后处理python制图脚本(上述普通声子谱也是用这个脚本画的,只要去掉散点图部分,重复两遍平平无奇部分)
此外,当我们面对虚频时,我们还可以利用jmol查看虚频振动模式,甚至去提取他的虚频振动本征矢,来确定虚频产生的振动方向,做一个微小的位移来进行能量曲线拟合,找到能量最小值的稳定结果,称为“冻声子法”。(脚本可以找“大鱼”获取)