二、 下载安装要想用 USPEX 来计算,得有 USPEX 软件那么现在就请打开浏览器进入:https://uspex-team.org/en/uspex/downloads,这个是 USPEX 下载地址打开网址之后,会出现如上图所示的界面,然后点击红色标记的 register 进行注册和登录如上图所示,先进行第一步注册,信息尽量填真实一点,尤其是邮箱,因为点击提交之后,会发送密码到你的邮箱里面,接着第二步,用注册的邮箱号和发送来的密码进行登录,登录之后会显示用户信息,我们不管这些,点下面红色标记的 Download,出现两个版本的 USPEX,我们选择 USPEX-9.4.4为什么呢?USPEX-9.4.4 是 USPEX 最经典的版本,体积最小,而最新的版本的体积急剧膨胀,相对老的版本,最新版本是Oganov教授团队采用 Python 将 USPEX-9.4.4 (MATLAB)改写了一遍,无大的新功能增加,发布时间较短,质量无法得到保证更主要的是,USPEX-9.4.4 有中文文档
下载好之后,我们进行下一步:安装把软件包传到课题组的服务器或超算上面去,并且确保机器上有 MATLAB 或者Octave,假如都没有,并且机器与外网隔离的情况下,可以参考这个安装 MATLAB( https: //blog.csdn.net/pihuanwan3227/article/details/84849969 ), 参考这个安装Octave (https://www.cnblogs.com/freeweb/p/7124589.html)假如1.你安装包已经上传到机器上面了;2.机器上有 MATLAB 或者 Octave,那么我们就来安装 USPEX 吧解压安装包:tar –xvf USPEX-9.4.4..tar.gz然后进入目录,你会发现如下文件及文件夹:其文件结构和内容如下:其中1.文件夹 doc 里面包含 USPEX 手册(uspex_manual_chinese.pdf 是 USPEX 中文版手册);2.文件夹 examples 包含标准的 USPEX 的 22 个程序例子,通过名字可以很清晰的了解到其对应的总能计算软件和计算功;3.文件夹 lib 是一些 USPEX 使用的 Python2 库;4.文件夹 src 包含 USPEX 的主要程序代码,其中 FunctionFolder 文件夹是 USPEX 核心代码,饱和了 USPEX 所有功能的实现,Submission 文件夹是提交 USPEX 计算任务的相关代码,USPEX.m 主程序入口;5.文件 INSTALL 是安装说明;6.USPEX 是 USPEX 程序启动器,不用管它;7.install.sh 是 USPEX 安装脚本接下进行安装: ./install.sh,接下来会提示让填写安装地址(笔者的机器里面 Octave 已经安装好,所以显示 Octave当然 MATLAB 安装好,也会显示 MATLAB)图中画红色的部分就是安装过程需要填写的内容,第1 个就是填写你需要安装 USPEX 的目录,一定确定是存在的目录的,建议填写绝对路径第2 和第3 就是确定所安装的目录如果这三项填写好,接下来还有重要的最后三步(这个就是设置环境变量,能够当前用户能够直接调用 USPEX):1. vi ~/.bashrc 2.export PATH=$PATH: /home/xiaoming/EDU/USPEX 3.export USPEXPATH=/home/xiaoming/EDU/USPEX/src其中/home/xiaoming/EDU/USPEX为USPEX安装目录这些做完之后,Have fun with USPEX!三、 进行计算在上一步中已经成功安装好 USPEX 了,这时候可以使用 USPEX 进行计算了,本教程以前面提到的 La-H 二元体系进行结构搜索,带你简单入门 USPEX注意:本教程使用的是最主流的软件组合:USPEX+VASP,本教程需要 VASP 已安装好,至于 VASP 懂不懂并不影响本教程的使用3.1 准备输入文件首先建立一个名为/La-H/0GPa的文件夹,进入这个文件之后,在终端输入命令: USPEX –g,然后查看文件夹 0GPa,会发现多了四个文件夹:AntiSeeds、Seeds、Specific、Submission如下图所示:其中,AntiSeeds 和 Seeds 文件夹中里面的存放的的是结构文件,由于本教程使用的是VASP进行计算,故这两个文件夹放的是 POSCARS 的文件(至于为什么是POSCARS,等下解释)而 Specific 文件夹里面放的是 VASP 进行计算时,需要的和赝势文件,而 Submission 文件夹里面放的是 USPEX 各种方式提交任务的脚本这 4 个文件夹是 USPEX 程序自动生成的,因而需要进入每个文件夹里面进行修改或者准备所需要的输入文件接下来我们一个个文件来进行详细说明(划重点)a. AntiSeeds 文件夹,这个文件顾名思义,就是禁止 USPEX 生成的结构的种子文件,与 Seeds 文件夹作用相反,并且这个功能不常使用,本教程 AntiSeeds 文件夹就不设置,不用管它,直接考虑 Seeds 文件夹b. Seeds文件夹,这个文件夹就是USPEX计算时,需要种子文件存放的地方好了,既然需要种子文件,那么我们来准备种子文件吧本教程要进行搜索的是 La-H 体系,那么开始准备La、H结构文件吧首先到日本晶体结构数据NIMS网站(https://crystdb.nims.go.jp/crystdb/search-materials: 免费注册且免费下载,并且里面结构文件多数有其引用的相关文献)上找结构上面两图分别是La、H的所有结构文件,1)、把这两种元素的cif结构文件全部下载下来;2)、用VESTA (http://www.jp-minerals.org/vesta/en/download.html:下载后解压即可使用,功能很强大的软件) 打开,另存为VASP5 格式的POSCAR文件;3)、打包上传到机器上刚刚建立的/La-H/0GPa /Seeds文件下;4)、包把La和H的POSCAR文件合并为一个文件,并命名为POSCARS (1、可以使用cat 命令合并,如:cat POSCAR_La POSCAR_H >> POSCARS,2、建议查看一下POSCARS文件格式,假如有类似乱码的东西,dos2unix POSCARS百度了解一下)c. Specific文件夹,这个文件夹主要存放的是USPEX控制的VASP进行计算的输入文件,由于本教程是La-H体系在0 GPa的变组分结构搜索,主要是用VASP计算USPEX生成结构的能量,因而这个文件内主要是POSCAR进行结构优化的文件如下图所示:INCAR_1-5: 这样设置的主要原因:考虑有你的初始结构通常远离局部最小点,在这种情况下,INCAR_1,2首先应该在保持体积固定的情况下(ISIF=4)弛豫原子和晶胞形状,然后在INCAR_3,4中做完全弛豫(ISIF=3),在INCAR_5中完成非常精确的单点计算(ISIF=2,NSW=0)(至于更具体的细节问题,手册上有详细的描述,请查看手册第3章第3.4小节)值得注意的是:K点设置由USPEX自动生成了,无需考虑d. Submission文件夹, 这个文件夹主要是USPEX来提交计算任务和检查计算任务的情况的一些脚本一般情况下,提交计算任务都是通过登陆到服务器上进行提交,那么这时候需要修改submitJob_local.m和checkStatus_local.m这两个脚本这是checkStatus_local.m脚本,一般情况需要修改的只有第21行,这行的意思:就是假如任务不是在排队等待或者是正在晕行,就认为任务算完了作者需要根据机器上安装的作业系统进行修改,相信搞科研的这个小问题解决起来肯定没问题的这个是submitJob_local.m脚本,需要修改的是第11行到第17行,这个修改主要是根据需要根据自己机器上提交任务脚本来修改的,基本上就是提交任务脚本的内容复制到单引号中去假如读者属于特殊情况,那么就参考上面的解释,并仔细阅读/Submission/README 文档,根据实际情况修改e. INPUT.txtUSPEX 自动生成的4个文件夹已经处理好了,那么接下来就是控制USPEX计算的输入文件:INPUT.txt (固定名字的文件),在/La-H/0GPa文件通过文本编辑器(vi INPUT.txt),把上面的内容输入进去,并并保存,下面来解释每行代表的意思,这是超级重重点上图都是USPEX计算输入控制文件:INPUT.txt主要内容,棕黄色的数字标志是行数,只是为了显示方便,不是需要输入的内容1-3行、为注释说明行第4行、为选择计算类型行,主要是选择什么样的计算方法进行不同类型的计算,目前USPEX支持四种计算方法分别为:USPEX、VCNEB、META、PSO等但目前采用变组分结构搜索的话,选用其王牌类型,USPEX就行,其他方法请参阅手册第5行、需要计算的结构类型、是否为分子和是否为变组分计算,301:3代表了三维块状结构,0代表了不是分子,1代表了采用变组分第6行、1是代表了进行结构搜索最稳定结构时采用了生成焓作为筛选标准,当然还有其他标准:体积,硬度,结构有序度等等,详情参阅手册第7行、1代表了设置允许系统自动进行进化的变分操作,这个设置能加快运算第9-11行、是设置需要计算的体系,本教程是La-H体系,所以在第10行输入La H, 当然你也可以在第10行输入 La H 的原子序数:57 1 ,这样也是被允许的第13-16行、设置上面你设置的体系原子的个数之比,表示着:LaxHy,也就是说任意x个La和任意y个H的结构都是可以生成的假如需要生成任意x个La和任意2y个H的结构怎么设置?第17-24行、设置关于生成结构的数目,第20行populationSize设置除了第一代,其余以后每代生成的结构的数目,第21行initialPopSize设置第一代生成的结构的数目,第22行numGenerations,设置总共计算的最大代数第23行stopCrit设置多少代的最好结构结构都一样就停止USPEX计算第24行是设置是否重新优化幸存的结构,默认是0,意思就是不重新优化(需要注意的是,这里的设置的大小,大致上决定你需要优化的结构的数目)第25-29行、设置允许生成LaxHy结构中8<=x+y<=18,这样设置能够更好锁定搜索结构的范围,当然越小计算量越少了,这个主要看个人选择了,但是minAt和maxAt不要相差太大,太大容易出错或者最后结果漏掉一些结构,手册上有推荐选择范围,自己参阅考虑第30-37行、设置遗传变分操作的具体细节的,主要设置各个操作的所占比例,fracGene:基因遗传占的比例,fracRand:随机生成的占比例,fracAtomsMut:原子摄动占的比例,fracTrans:晶格转变占的比例,fracLatMut:点阵摄动占的比例注意:所有比例之和必须为1第39行、这行是设置体系的压强大小,单位是GPa, 0是不施加外压当然了前面提到的文章,压力有150 GPa 和 300 GPa,在相应的压力下进行搜索时,应该此处改为150 或 300第41-46行、是设置调用的外部程序执行具体计算用的,1代表了调用VASP,1 1 1 1 1 跟Specific 文件夹里面INCAR_1、INCAR_2、INCAR_3、INCAR_4、INCAR_5遥相呼应,表示一个结构需要优化5次得到精确的能量值第48行、设置USPEX一次总共提交多少个任务,第49行、设置提交任务方式,1设置为local,毕竟USPEX一般都是安装在服务器上面的第51-56行、设置重新启动USPEX运算,这个设置应该好好琢磨一下,尤其是第54行pickUpYN,0是不进行计算,1是进行重新计算,第55行pickUpGen根据你的结果文件夹results里面的generation的数目进行设置,第56行pickUpFolder是根据哪个结果文件夹results进行重新计算,这3行一定要配合使用,是相关联的当然本教程是进行新计算,都设置为0,即可,这个弄明白了,重新计算时,可以节省大量时间好了,La-H 体系不同压强下变组分结构搜索的INPUT.txt的主要设置内容介绍完毕f. 最后一项设置,就是提交整个USPEX的脚本了,很简单的shell脚本,任何一个机器上提交USPEX任务,都可以用这个,只是切记一定要把这个脚本命名好当然你如果在自己机器上使用了MATLAB把 –o 去掉就行了,-o的意思是使用octave2、 提交USPEX任务如果前面一切输入文件准备好了之后,那么我们可以开始了神奇的USPEX变组分结构搜索之旅了终端输入命令:n nohup ./uspex_Lah0.sh >> log &(其中uspex_Lah0.sh就是1.f中提到的提交USPEX任务的脚本)如下图所示:自此任务已经提交,然后检查 log,看是否出错,然后再修正当然,又回到原来的 La-H 超导问题,至于本教程计算结果的处理,以及计算过程中文件分析,有机会再介绍吧
但是看完教程到这里,然后自己又动手做了,恭喜你,学会了水文章利器
至于 USPEX 更高级一点或者其他功能教程需求,欢迎提出晶体结构预测方法和软件还有很多:AIRSS、CALYPSO、IM2ODE、MHM、MOLPAK、MUSE、RandSpg、XtalOpt、GASP、CrySPY 和 EVO 等,有机会的话,可以再介绍介绍
笔者仅仅只是一个搬运工
(图片来源网络,侵删)
0 评论