相信用过Materials Studio下CASTEP的人都知道,CASTEP的图形输出,也就是所谓的post-processing是基于MS提供的功能的,除了例如能带之类的点-线图可以轻易的导出到Origin或者MatLAB之类做出比较专业的图象,其他的例如电荷密度之类的,导出重画一是麻烦,二是不能得到别人论文中那样漂亮的图片。几个免费做结构图的软件,比如Molekel,XCrySDen等,做图的质量基本是秒杀MS的模型图的。
更更郁闷的,是如果在Linux下直接用RunCASTEP.sh运行计算,计算后的结果很难再导回到Materials Studio的图形界面,给结果分析造成了困难。
跟别的基于DFT的平面波赝势软件相比,CASTEP的输出种类也的确偏少,总是缺乏别人那么花样繁多的结果。比如该帖中的问题:http://muchong.com/bbs/viewthread.php?tid=3701889&fpage=3,取出HOMO或者LUMO的电荷密度,就无法直接使用MS来解决。
这也怪不得CASTEP,毕竟CASTEP是商业软件,其核心结果文档(check文件)的格式并没有公开,所以很难存在什么软件轻易读取它的结果。
事实上,这些问题早就得到了很大程度上的解决了。因为,CASTEP至少在英国学术界内,是开源的。我们这里要感谢英国剑桥大学卡文迪实实验室凝聚态物理组的Michael Rutter,他为我们提供了一个工具check2xsf:http://www.tcm.phy.cam.ac.uk/~mjr/vis/。
该工具是开源的,在Unix/Linux下非常容易编译,只需要修改Makefile中一两个参数就可以直接make了。但是,我们用MS更多是在Windows下。
这两天使用Visual Studio,总算成功在Windows平台下成功编译了check2xsf,最大的困难已经不是修改编译时的参数,而是要修改几处C代码,因为原始的代码使用的是POSIX UNIX的标准C库函数,放在Windows下显然是不能使用的~编译好的程序在附件中。
下面来做个例子,说明怎么使用这个软件。
使用ZnO作为例子,ZnO作为直接带隙半导体材料,有着明确的HOMO和LUMO,并且位于Gamma点上。我们本次任务就是提取HOMO和LUMO在Gamma点上的电荷密度。首先,对ZnO进行计算,计算时一定要选择回传完整check文件:
然后,计算完成,到存储计算文件的文件夹中,显示所有隐藏文件,把扩展名为check的文件取消隐藏属性。
这时,需要再做两个检查:1,HOMO和LUMO分别是第几条能带;2,第几个k点是Gamma点。
对于问题1,我们可以看能带图。
对于问题2,我们既可以看扩展名为castep的文件,又可以使用命令 ,然后查看ZnO_k.cell。不管哪个方法,都可以看到如下的结果:
这说明了,Gamma点是第48号k点。
然后,就可以提取数据了。数据保存为cube格式,因为这个格式几乎可以用任何晶体作图软件打开,不仅仅限于check2xsf的作者推荐的XCrySDen和Jmol。我在这里使用的是V_Sim,这个软件有Windows版,可以到官方网站随便下载。不会使用V_Sim又想学习的,可以到该帖看我以前制作的教程:http://muchong.com/bbs/viewthread.php?tid=4923069&fpage=1
首先,是HOMO的结果。显示3D的等值面图,可以看到,如同Abinit区的那个帖子,我们不但得到了HOMO的等值面,还可以对不同位相使用不同颜色。所以,特此更正一下,这里输出的其实不是Gamma点处HOMO能级的电荷密度,而是该点的波函。我们知道,波函是有位相的,但是电荷密度是,是不可能有位相并且只有非负值的。更有特色的一点在于,输出波函,在Abinit和PWscf中都不支持,或者只能用wannier方程计算才能得到有位相区分的图(VASP不清楚,暂时保留意见)。
然后,是对某个截面的波函分布的平面图:
再再然后,是Gamma点处LUMO的波函:
详细的check2xsf的使用命令如下:
|