如何在超算集群下编译 vasp+vtst


前提

超算集群内vasp的编译一般是不把vtst编译进去,导致某些需要用到vtst辅助计算的小伙伴们发愁,因为vtst不能独立于vasp编译和使用。在参考了多篇原Po的博文后, 小编Grasui在此给大家整理出适用于超算集群的vasp+vtst编译。
首先在集群下登录,最好新建一个文件夹

mkdir vasp

把下载好的vaspvtst压缩包上传到vasp文件夹下,下载地址如下:
VASPhttps://www.vasp.at/
VTST: http://theory.cm.utexas.edu/vtsttools/scripts.html
为了让小伙伴绕过不必要的坑,小编Grasui已经把这两个压缩包准备好啦,中间也遇到不可言说的心酸(坑),快夸夸给我!嘿嘿!


网盘链接分享
提取码:7z4q


***如果小伙伴想尝试亲自下载,由于vasp的5.4.4版本有bug,需要打补丁,别忘了把 patch连同下载和上传;vasp的5.4.1版本则不需要。


Grasui编在这里用vasp.5.4.4为例为教大家编译,是不是迫不及待啦?!


1. 把上传的压缩包解压

tar –zxvf vasp.5.4.4.tar.gz #用tar -zxvf命令解压
gun zip vtstcode-179.gz #用gun zip命令解压
cp patch.5.4.4.16052018 ./vasp.5.4.4 #把补丁复制到vasp.5.4.4文件夹内
cd ./vasp.5.4.4 #进入vasp.5.4.4文件夹内
patch -p0 < patch.5.4.4.16052018 #打补丁
cp arch/makefile.include.linux_intel ./makefile.include
#接下来把vtstcode里的文件copy到src/里,copy最好先把chain.F备份
cp src/chain.F src/chain.F-org
cp ../vtstcode-179/* src/


2. 接下来要在一些文件修改和添加

(1)修改src/main.F源码

CALL CHAIN_FORCE(T_INFO%NIONS,DYN%POSION,TOTEN,TIFOR, & 
LATT_CUR%A,LATT_CUR%B,IO%IU6) 

变为(注意后两行):

CALL CHAIN_FORCE(T_INFO%NIONS,DYN%POSION,TOTEN,TIFOR, & 
TSIF,LATT_CUR%A,LATT_CUR%B,IO%IU6) 
!    LATT_CUR%A,LATT_CUR%B,IO%IU6) 

如何替换呢?如果小伙伴可以可视化编辑 main.F,替换轻松多啦!当然不可视也可以做到替换,命令如下:
vim src/main.F
:/CALL CHAIN_FORCE #vim下检索命令
a #vim下可编辑模式,小伙伴就可以替换啦!替换结束后按下esc键退出编辑
:wq #保存并退出

(2)修改编译配置src/.objects,在chain.o前,添加如下内容

bfgs.o dynmat.o instanton.o lbfgs.o sd.o cg.o dimer.o bbm.o \ 
fire.o lanczos.o neb.o qm.o opt.o \ 

小伙伴一定要在chain.o前面添加添加命令如下:
vim src/.objects
#由于.objects文件是隐藏的,想可视化编辑的小伙伴就要碰壁啦
:/chain.o #vim下检索
a #编辑模式,添加完成后按下esc键退出编辑
:wq #保存并退出


3. 完成以上操作,基本完成了编译前的铺垫工作,接下来就可以编译啦!

module ava #查看集群下的所有编译库,主要用到intel、mpi库
module load apps/vasp/intelmpi/5.4.1 #加载编译库
module load mpi/intelmpi/2017.4.239
#加载编译库,缺少任意一个库或者加载不对的库都会出现编译错误
make all
#小伙伴可以去冲杯咖啡,犒劳下自己(嘿嘿),等待大约20min
ls ./bin
#如果显示vasp_gam vasp_ncl vasp_std,编译大功告成!


结束语

到此,小伙伴就可以提交脚本做计算模拟啦!
注意run.slurm(运行脚本)要修改下srun那一行,加载自己用户下的vasp_std,否则还是会用集群下vasp_std,谨记!
关于运行效率,暂时还未验证,后续会给出数据,嘿嘿!


  • 20
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值