USPEX粉 科研共进社 2022-05-05 23:39
大家好,好久不见。笔者准备继续把所了解的USPEX知识完整的介绍给大家。当然,笔者只是一个比较初级使用者,高手请不要笑话。此教程只做抛砖引玉的作用。
前面一篇,我们已经做了关于La-H的变分结构搜索的示例,如果读者早一点学,举一反三,那么这篇science子刊 (DOI: 10.1126/sciadv.aax6849),就可能是你的啦!不多说了,还是开始本篇教程之旅。
注意:这篇教程主要基于USPEX命令和USPEX本身官方的案例1(EX01-3D_Si_vasp)来进行讲解。
一、 USPEX基本命令介绍
这次笔者准备比较系统介绍一下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!
二、 USPEX官方案例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下最稳定的结构!