对科研狗们来说,ASE不是Automotive Service Excellence的缩写,而是Atomic Simulation Environment。
是一款基于Python语言的工具软件,可以方便地处理DFT计算中结构搭建,准备输入文件准备,读取输出文件,既可以可视化,又可以用来转换文件格式。本文主要介绍ASE在DFT计算中的骚操作。这个”骚”字让我想起来小学的时候,同桌读了屈原的《离骚》,然后转过头来用这个字来笑话我,说我真骚。我被憋的满脸通红却不知如何反驳。骚就骚吧,骚前面加个离
可以千古流传,那么我相信,它后面加个操作
也可以对大家日常的计算有所帮助。
首先声明:本教程具有自动过滤功能。每次过滤的时候,我都会提醒一下,以防你被滤纸卡住。但如果你读完教程却不能顺利进行操作,请不要找我,请分解自己让自己滤下去。
滤纸-1: ASE成功安装了没? (https://wiki.fysik.dtu.dk/ase/install.html)被卡住就不要继续喽!
今天我们讲的骚操作就是用ASE来进行格式转换。这也是本人日常用的最多的一个,最稳定也最方便的一个操作。既然是操作,那么就举个栗子吧:
例子1):将mol文件转化为xyz。
首先在Chemspider数据库中,下载一个乙烷3D构型的mol文件。
滤纸-2:Chemspider 是啥玩意,怎么下载mol文件? 之前教程有讲过,不会的找百度。被卡住就不要继续喽!
操作过程:
1 | qli@bigbro:~/Downloads$ ls |
我们成功用ase gui 将mol转化为了xyz文件。
1) 每次运行都会出现那行警示信息,让你用ase convert转化。命令如下:
ase convert -i mol -o xyz 6084.mol C2H6.xyz
这个命令比较长,输入起来烦人,远远不如ase gui 干脆利落。警告信息就用你那高度近视镜自行滤过吧。
2) -o
中的字母o
是out的缩写,意思是输出。
3) ase gui 后面跟一个文件,可以直接可视化。
学会了ase gui
的命令操作,下面我们需要进一步分解自己,以便透过更多的滤纸。
滤纸-3:
DFT计算中有很多的文件格式,VASP有POSCAR(CONTCAR),Gaussian有gjf或者com,Material Studio导出来可以有cif啥的。这些格式之间转换着实让一些新手头疼。以至于经常在群里看到有人询问类似的问题。如果你没有用文本编辑器打开这些格式的文件,并认真分析下它们的数据结构,那么你被滤纸卡住了。请把自己变小一些再继续阅读。
分析一下上面的操作:ase gui 6084.mol -o C2H6.xyz
6084.mol 是我们读取的对象,C2H6.xyz 是输出的文件。回到大家常用的VASP计算上来,cif文件文件都不陌生,那么我们就转化一下它吧。
例子-2: 将CIF转化为XYZ,POSCAR
首先从Materials Project 下载一个干冰的cif文件。
滤纸-4:如果你不知道啥是MP。打开这个网址:https://materialsproject.org,注册,随便下载个cif文件。
操作过程:
1 | qli@bigbro:~/Downloads$ ls |
OK,大功告成。可以拖到服务器提交任务了。值得注意的是,ASE输出的POSCAR总是把元素行放在第一行的位置,类似于VASP4的POSCAR格式,如果不爽的话,
1) 自行修改为VASP5/6的POSCAR格式。
2) 也可以修改ASE的源代码,
2.1) 找到ASE的安装目录,打开 ase/io
目录下的vasp5.py
文件;
2.2) 将vasp.py
中vasp5 = False
全部改为vasp5 = True
;
2.3) 保存vasp.py
即可。
1 | qli@bigbro:~/anaconda3/lib/python3.8/site-packages/ase/io$ pwd |
如果有其他的需求,可以继续研究ASE或者等后面的骚操作。再继续分解自己:怎么才能把其他格式的文件转化成我需要的格式呢?
上文中的例子已经给你足够的启发了。
妹妹你大胆地往前走
往前走 莫回呀头
通天的大路 九千九百
九千九百九呀
……