专栏名称: 研之成理
夯实基础,让基础成就辉煌;传递思想,让思想改变世界。“研之成理科研平台”立足于科研基础知识与科研思想的传递与交流,旨在创建属于大家的科研乐园!主要内容包括文献赏析,资料分享,科研总结,论文写作,软件使用等。科研路漫漫,我们会一路陪伴你!
目录
相关文章推荐
社会学理论大缸  ·  悼念布洛维:一位马克思主义的公共社会学家 ·  2 天前  
社会学理论大缸  ·  新春报名丨《社会学知识体系十讲》带你系统搭建 ... ·  3 天前  
研之成理  ·  有机化学,Science! ·  5 天前  
51好读  ›  专栏  ›  研之成理

手把手教你USPEX官方案例1

研之成理  · 公众号  · 科研  · 2020-03-14 08:30

正文



大家好,好久不见。笔者准备继续把所了解的USPEX知识完整的介绍给大家。当然,笔者只是一个比较初级使用者,高手请不要笑话。此教程只做抛砖引玉的作用。

前面一篇,我们已经做了关于La-H的变分结构搜索的示例,如果读者早一点学,举一反三,那么这篇science子刊 (DOI: 10.1126/sciadv.aax6849),就可能是你的啦!不多说了,还是开始本篇教程之旅。
注意:这篇教程主要基于USPEX命令和USPEX本身官方的案例1(EX01-3D_Si_vasp)来进行讲解。

一、 U SPEX 基本命令介绍
这次笔者准备比较系统介绍一下USPEX的命令,先进入机器打开shell,输入: USPEX –h


1. USPEX –h (USPEX --help) :展示帮助信息,当你不知道USPEX能执行的命令有哪些,键入这个命令看看就明白了。
2. USPEX –v (USPEX --version): 显示USPEX版本号。
3. USPEX –p (USPEX –parameter):显示INPUT.txt所有的108个参数。


INPUT.txt的这108个参数,我们在前面入门教程中,已经了解了一些参数,但是还有很多参数不了解,怎么办?还是这个命令:比如我们不知道 calculationMethod 这个参数,直接 USPEX -p calculationMethod

然后你就能看到如图的参数详解和正确的使用方式。笔者有一个很诚恳的建议就是, 108个参数,没必要每个都要认识,但是这个查看参数的命令一定要记住,还有就是参数能少用就少用!


4. USPEX –e (USPEX --example): 显示USPEX官方的22个案例名字和简介。
5. USPEX –c NUM (USPEX –copy=NUM) :NUM 表示数字,这个命令就是拷贝第NUM个例子到当前目录下,比如:USPEX –c 1 , 拷贝第一个例子到当前目录下。
6. USPEX –g (USPEX --generate): 这个命令入门教程里面提到过,就是生成AntiSeeds、Seeds、Specific、Submission (ps: 这里面有需要更改的提交任务的脚本)这四个文件,为USPEX计算做准备。
7. USPEX –r / USPEX –o : 这两个命令在提交USPEX运算脚本里面提过,就是进行USPEX计算/ 用Ovctave进行USPEX计算。
8. USPEX –clean: 清理当前计算文件夹,这个不常用。

好了,以上就是USPEX命令,最常需要输入的也只有 USPEX –p USPEX –g。 下面我们进入主题,学一下官方案例1!

二、 U SPEX 官方案例1
EX01-3D_Si_vasp: 案例1,0 GPa下的Si( 一个晶胞里面8个原子)
我们先把案例1拷贝到当前目录下: USPEX –c 1


其中reference里面是案例1的计算结果,属于参考答案,等下我们来分析一下里面的文件。现在我们先考虑一下,USPEX计算需要哪些文件夹?这里是不是还少了一些文件夹?少哪些了?答案很简单嘛: USPEX –g ,然后我们看看 INPUT.txt, 了解一下这个案例是做什么的。


第5行、 calculationMethod (计算方法): USPEX (遗传演化算法,也就是遗传、变异遗传算法那套原理的改进版)。
第6行、calculationType(计算类型):300 (3:三维、0:非分子、0:非变组分)
第7行、optType(优化类型):1(焓值)
第8行、AutoFrac ??:我也不记得了。。。不要怕,前面不是讲过怎么查看参数嘛! USPEX -p AutoFrac
第11行、Si:计算的体系的原子类型


第15行、8:计算的体系的原子类型的个数为8
第20行、populationSize (每代多少结构):20
第21行、numGenerations(要计算多少代):25 (这个代数,是最多要计算的代数,假如达到收敛的条件,可以在提前结束)
第22行、stopCrit(收敛的条件):8 (单位:代。意思就是假如连续有8代的最优结构的优化类型( 本例中为焓值 )是一样,那么证明计算收敛了,可以停止计算了)
第23行、bestFrac(上一代用于生成下一代结构的比例):0.6 (这个值默认值是0.7,在0.6-0.8之间是合理的)
第27行、fracGene(本代由遗传生产结构的比例):0.5
第28行、fracRand(本代由晶体对称性随机产生结构的比例):0.2
第29行、fracAtomsMut(本代由较小的突变产生结构的比例):0.2
第30行、fracLatMut(本代由点阵突变产生结构的比例):0.1
特别需要注意的是:fracGene+ fracRand+ fracAtomsMut+ fracLatMut = 1
第35行、计算总能软件的代码:1 1 1 1 1(VASP、采用5步优化,那么Specific应该有哪些文件了?请到入门教程找找)
第39行、计算总能的K点密度设置:0.13 0.11 0.10 0.08 0.06(这个值越低、K点越密集)具体描述如下: USPEX -p KresolStart 。不懂哪个参数就USPEX -p


第43行、运行总能计算软件的指令: 一般建议不在这个设置这个参数,直接在Submission文件夹里面提交计算任务的脚本里面改就可以了。
第46行、whichCluster(采用什么计算方式): 一般采用1,同第43行原理。
第47行、numParallelCalcs(并行计算数):10 (意思就是一次提交10个总能计算任务)
第48行、ExternalPressure(计算外压):0.00001 (GPa、老朋友啦,不解释了)
把这个INPUT.txt读完以后, 案例1就是搜索包含8个Si原子的晶胞在大气压最稳定的结构。
思考题:跟入门教程学的La-H不同压力下,变组分结构搜索参数上有何区别?
返回INPUT.txt目录,USPEX计算4大准备目录:AntiSeeds、Seeds、Specific、Submission和提交任务脚本EX01-3D_Si_vasp.sh。
a、AntiSeeds文件夹没特别需要,不用理它;
b、Seeds文件夹,需要从NIMS下载所有稳定的Si结构,最后做成一个POSCARS,具体操作, 读者需要自己动动手了,参考入门教程;
c、Specific文件夹本案例中已经准备好了;
d、Submission文件夹, 读者需要自己动动手了,参考入门教程。
f、EX01-3D_Si_vasp.sh:本案例已经准备好了,需要注意的一点就是 USPEX –r –o >> log / USPEX –r >>log : (Octave/ MATLAB 用哪个自己修改)。
既然我们把准备工作都弄好了,就开始运算吧!
nohup ./EX01-3D_Si_vasp.sh >> log &

在计算的过程中会出现一个重要的文件夹 results1,results1 里面放的就是计算结果,随着计算的时间的增长,里面会有文件夹generation1、generation2、generation3…,还有一些其他文件。但是肯定包括reference(参考答案)里面的文件,文件夹reference包含了计算结果,但是笔者先提醒一下,本次计算的目的: 搜索8个Si原子的晶胞在大气压下最稳定的结构。
那么 带着目的和INPUT.txt,我们来看一下计算结果。


我们先来看最需要的答案: BESTgatheredPOSCARS和BESTIndividuals, 这两个文件是 定组分变胞计算的最最重要的文件,并且相互对应 。先看看 BESTIndividuals:顾名思义,这个文件里面存着每一代最稳定的结构!


第1行标题, Gen 是generation的缩写,USPEX计算时种群的代数; ID 是USPEX计算时给每个结构做的标记,这个数值一般就是整个USPEX计算时产生第几个结构; Origin 表示这个结构由什么遗传算法操作产生的; Composition 成分; Enthalpy 焓值; Volume、 Density、KPOINTS 这三个看字面意思就能明白了 ,SYMM 代表空间群对称性,这个数字代表1-230个空间群代表; Fitness、Q_entr、A_order 、S_order 这些都是代表晶胞有序度相关的量,都是根据fingerprint这篇文章里面定义的(doi:10.1107/S0108767310026395)!

好了,我们把标题了解完了,来查看结果: 焓值越低,结构越稳定! 显然可见第13代(第15行)的 ID301结构最稳定 ,而这个结构是从第12代ID276结构继承来(Origin: keptBest),那么可以从这个文件里面看到USPEX计算过程中, 最稳定的结构一代代遗传演化过程!

思考题:为什么计算到13代就结束了?(提示看INPUT.txt对应参数来思考)

既然我们已经得到最稳定的结构的ID是301,那么它的具体原子坐标了?这时候该 BESTgatheredPOSCARS 出马了!从文件名字意思可以猜出这是最好的结构的原子坐标的集合,当然POSCAR这个就可以看出是以VASP的POSCAR形式存储的。既然我们有ID=301这个目标,看一下这个结构在文件里面哪一行?

grep 301 -n BESTgatheredPOSCARS

在文件里面的193行,现在我们打开文件,定位到这一行。


整个文件是 VASP5格式的POSCAR集合,打开文件定位到这一行的时候,ID=301这个结构是位于文件的最后,而上一个结构是EA276,上上一个结构是EA254...而EA301是第13代最稳定的结构,EA276是第12代最稳定的结构,EA254是第11代最稳定的结构。。。可以看出BESTgatheredPOSCARS的结构原子坐标和BESTIndividuals每一代的最稳定的结构是一一对应的,那么BESTgatheredPOSCARS里面的结构原子坐标也是一代代最稳定的结构步步演化过程。

把BESTIndividuals和BESTgatheredPOSCARS理解透彻了,其余的文件根据文件名字也能知道里面存放的具体数据是什么。比如文件Individuals里面放的是所有结构的焓值、体积、密度和有序度等信息,gatheredPOSCARS里面放的是所有的结构的原子坐标,Parameters.txt就是INPUT.txt的副本。余下的文件里面值得注意的就是OUTPUT.txt,这个文件是USPEX计算过程的软件自身的log文件。


里面包含了对
于整个USPEX计算的解释,随着每一代计算的结束,OUTPUT.txt


这个文件里面也会有对于这一代计算的总结,整个计算结束以后,USPEX也会做出总结。总而言之, OUTPUT.txt就是log文件,假如不明白USPEX怎么计算的,或者USPEX计算过程出错了,在这里都能找到原因。


三、 小结
1、USPEX –g :是生成计算文件目录的,准备计算的第一步。
2、USPEX –p [parament]: 是查看和理解INPUT.txt里面参数的含义和使用方法的。
3、EX01-3D_Si_vasp是定组分的变胞计算,搜索8个Si原子的晶胞在大气压下最稳定的结构。
4、文件BESTIndividuals和BESTgatheredPOSCARS是定组分的变胞计算主要结果,两者分别存在每一代最稳定的结构和每一代最稳定结构的坐标。
5、OUTPUT.txt就是USPEX的log文件,假如不明白USPEX怎么计算的,或者USPEX计算过程出错了,在这里都能找到原因。

四、 举一反三
计算4个Ge原子的晶胞在20 GPa下最稳定的结构!

相关推荐:
理论计算预测材料,手把手教你用USPEX!






请到「今天看啥」查看全文