24小时热门版块排行榜    

CyRhmU.jpeg
查看: 18639  |  回复: 165
【奖励】 本帖被评价127次,作者souledge增加金币 100
本帖产生 1 个 1ST强帖 ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

[资源] 强势增强CASTEP输出的工具:check2xsf (Windows版)

相信用过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的文件,又可以使用命令
CODE:
check2xsf -l --cell ZnO.check ZnO_k.cell

,然后查看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的使用命令如下:
引用回帖:
Usage: check2xsf [-aAbBckmRsSvx] [--FORMAT] infile [outfile]

-a           rotate as though outputing in abc format
-A           accumulate (sum) requested bands
-b[=range]   include bands (as psi)
-B[=range]   include bands (as densities)
-c           include charge density
-d           read also a .chdiff file, constructing its name from
               the .cell or .check file given
-H           shift atoms by half a grid cell
-k=range     include given k-points (default 1) for bands
-l           list k-points in .cell output, not MP parameters
-L           produce (incorrect) left-handed abc output
-m[=a,b,c]   assume input is molecule, not crystal, and move by
               given nos of grid cells, or move automatically
-R           don't rescale densities
-s           include spin densities
-S=range     include given spins (0 or 1) for bands
-t=(x1,y1,z1)(x2,y2,z2)[(x3,y3,z3)]
             rotate coords so 1st vector becomes 2nd, using third
             vector as axis, else axis is perpendicular to others
-T=(x1,y1,z1)(x2,y2,z2)[(x3,y3,z3)]
             ditto, but first vec expressed in absolute coords
-v           be verbose (may be repeated)
-x           expand rhombohedral cell to cubic/hexagonal automatically
-x=(x1,y1,z1)(x2,y2,z2)(x3,y3,z3)
             re-express in new basis given in terms of old
-X=(x1,y1,z1)(x2,y2,z2)(x3,y3,z3)
             re-express in new basis given in absolute terms
-3           if swapping axes to convert lhs to rhs, third axis
               is special & first two swapped. Else first is special.

FORMAT is one of: xsf       XCrySDen (default)
                  cell      CASTEP .cell, cartesian and fractional
                  cell_abc                abc and fractional
                  cell_abs                cartesian and absolute
                  cell_abc_abs            abc and absolute
                  cml       Chemical Markup Language
                  cube      Gaussian cube
                  dx        OpenDX
                  fdf       Flexible Data Format (Siesta) (beta)
                  null      Discard output
                  pdb       PDB
                  pdbn      PDB with atoms numbered
                  vasp      VASP output
                  xplor     Xplor
                  xyz       XYZ

range specifies band numbers as "a,b-c,d"
-b and -B are mutually exclusive. Only one of the x and t options may be given

Input files ending .pdb are assumed to be in pdb format, otherwise
automatic detection of .cell or .check input. Compatible with
.check files from CASTEP 3.0 to 5.5 (and perhaps beyond).

Version 1.04, (c) MJ Rutter 2007, 2008, 2011 licenced under the GPL v2

回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : check2xsf.rar
  • 2013-01-10 14:41:48, 115.45 K

» 收录本帖的淘帖专辑推荐

纳米技术与能源及模拟 精华网帖收集 万卷阁之搜神记 VASP
第一原理资料汇编 第一性原理计算-tg Material Studio 科研技巧
MS第一性原理 资源 计算模拟-MS-CASTEP 第一性原理计算辅助工具
物理前沿 MS资料 生活休闲 软件及使用
VASP 计算资料 @个人收集@ 科研必备知识
量化软件 差分电荷密度 Photochemistry 杂七杂八
MS学习笔记 good resources 计算化学 第一性原理
MS学习 我的分享 田凯 藏宝阁
晶体软件 计算化学相关 电子书 模拟计算
第一原理

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

» 本主题相关商家推荐: (我也要在这里推广)

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
引用回帖:
6楼: Originally posted by slogos at 2013-01-10 17:31:36
非常感谢! 但Windows7 64位操作系统运行不了

终于有个反馈,来说说用不了的信息是什么,怎么个用不了法
8楼2013-01-10 18:10:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 166 个回答

★★★★★ 五星级,优秀推荐

好帖!支持souledge
3楼2013-01-10 16:10:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

slogos

木虫 (初入文坛)


★★★★★ 五星级,优秀推荐

非常感谢! 但Windows7 64位操作系统运行不了
6楼2013-01-10 17:31:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

future_wl

木虫 (著名写手)


★★★★★ 五星级,优秀推荐

哇,楼主你编程好厉害,佩服佩服!
10楼2013-01-10 21:25:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
简单回复
huangll992楼
2013-01-10 15:36   回复  
五星好评  
kings014楼
2013-01-10 16:51   回复  
五星好评  顶一下,感谢分享!
2013-01-10 17:10   回复  
五星好评  顶一下,感谢分享!
ljjhb17楼
2013-01-10 17:53   回复  
三星好评  顶一下,感谢分享!
m21259楼
2013-01-10 20:23   回复  
五星好评  顶一下,感谢分享!
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复(可上传附件)
信息提示
请填处理意见