高通量计算分子动力学Lammps脚本,并自动接口PhaseGo绘制高温高压成分相图

实习时候针对中国钢研悬算项目写的一些脚本和接口,用以完成自动高通量修改Lammps输入文件和网格式提交,自动数据后处理得到声子态密度信息,自动数据格式转换传送给PhaseGo得到高温高压相图信息。

脚本例子中默认的输入文件NVT名字为:in.BCC.FeNi-NVT
势场文件的默认名字为:Fe-Ni.eam.alloy
提交脚本名字为:lammps.slurm
压强区间默认为:0~20Gpa (NPT里的参数,NVT中不需要)
温度默认区间为:10~2000K (Tlist留有接口,需要的话搜索每个Tlist去修改)
可以根据以上提供的关键字进行修改

Step1:
确定计算体系的NPT和NVT输入文件和势场文件准备,此处不多介绍,只说一点:因为喂给PhaseGo的数据需要准备好给赫尔姆兹自由能的微分数据,所以要先事先准备好体系在高温、高压两个物理情境下的体积端点值,一般我们认为在高压低温下的体积是最小的,低压高温下的体积是最大的,基于此在NPT系综下先确定格子的参数(类似于BCC这种晶格参数),简称其为Vlist;
Step2:
在确定好晶格参数的端点值和用于喂给微分的插值步长后,修改lammps_workflow-part1.py中 的 Vlist 参数,为体系测试得到的list。需要注意的是,要清楚计算的体系一次NVT需要的时间和你在服务器上同时提交任务的个数,根据你的服务器承载量来设置提交间隔(第40行的sleep秒数,万核用户忽略)
最好使用提交脚本提交lammps_workflow-part1.py
不要命令行,不要nohup,最次也要用screen,不然什么时候网络不稳定就要自己去找断点。
step3:
根据计算体系的模拟个数修改lammps_workflow-part2.py中计算声子态密度的参数, find_pdos函数中的每个参数值与研究体系息息相关,严格填写。在程序的最后依然输入lammps_workflow-part1.py中 的 Vlist 参数,这一步在lammps_workflow-part1.py严格运行结束之后再运行。依然建议使用提交脚本,禁止命令行。
step4
运行gotophase-alpha.py,可以命令行,很快完成的数据后处理和格式转换。传入Vlist和alist,在我最后的修改版本中,alist已经改为和是Vlist一样的参数。目的是得到gotophase 中 的 alist 参数,会自动存入gophase文件夹里(脚本自己会创建这个文件夹)数据格式已经整理好,可以直接喂给PhaseGo得到相图了。

注意,所谓Vlist输入的也是格子参数,不是真的体积值,这个参数值是从NPT中的lammps.log输出的后100步均值处理得到的。

总之:需要准备好单个计算的输入文件,计算提交脚本,测试单个NVT时间和服务器承载量,按照前四步的顺序check函数参数输入正确就可以了。

哦哦,我的个人github关于以上代码的链接

PhaseGo的一些图:

在这里插入图片描述
Phasego的输入文件参考文献:
Phasego: A toolkit for automatic calculation and plot of phase diagram

写在最后:
计算多组分高温高压相图是一个很大的计算工作,使用脚本省去繁琐重复工作和降低人为犯错率,但只有清楚脚本到底在干什么,为什么凑微分,如何检验势场文件的可信性,认真了解科学意义和物理过程才是更重要的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值