计算化学公社

 找回密码 Forget password
 注册 Register
Views: 28|回复 Reply: 0
打印 Print 上一主题 Last thread 下一主题 Next thread

[VASP] VASP收敛性测试bash小脚本

[复制链接 Copy URL]

25

帖子

0

威望

194

eV
积分
219

Level 3 能力者

本帖最后由 hydrogen2333 于 2025-8-14 17:42 编辑

让AI写了一个小脚本用于VASP收敛性测试,面向集群上的slurm作业系统和个人计算机。
前者原来提交任务的命令是
  1. sbatch slurm.sh
复制代码
后者原来提交任务的命令是
  1. mpirun -np 8 vasp_std
复制代码
集群上需要将脚本放在包含"INCAR POSCAR KPOINTS POTCAR slurm.sh(原提交任务的脚本)"五个文件的目录下,然后运行收敛性测试脚本就行;个人计算机上则只需放在包含四个输入文件的目录就行。测试脚本会先进行ENCUT参数的测试,然后进行K点的测试,最后给出合适的ENCUT值和K点的值。集群那个测试脚本开头的内容可以自己设定,如下:
  1. ENCUT_START=200  #测试起始截断能
  2. ENCUT_END=500  #测试终止截断能
  3. ENCUT_STEP=20  #测试截断能步长
  4. NATOMS=2  #POSCAR中原子总数
  5. ENERGY_CRITERION=0.001  #收敛标准:前后两次测试任务中每个原子的平均能量差小于0.001 eV/原子的第一个点处
  6. MAX_JOBS=999  #脚本向集群提交的最大任务数量

  7. KPOINT_SCHEME="Gamma"  #选择使用Gamma方案或者Mp方案
  8. KPOINT_START=1  #测试起始KPOINTS
  9. KPOINT_END=8  #测试终止KPOINTS
  10. KPOINT_STEP=1  #测试KPOINTS步长

  11. SLURM_SCRIPT="slurm.sh"  #原集群上提交任务的脚本,拷贝一份到测试脚本目录下
  12. LOG_FILE="convergence_test.log"  #日志文件名称
复制代码
测试了两个例子,均为结构优化后的Static Calculation
一个是cubic Fe的惯用晶胞,晶胞参数是2.86 angstrom,测试结果是开始收敛处的ENCUT=310<ENMAX(267.882, POTCAR)*1.3,这里和平常的经验:ENCUT设置为ENMAX*1.3不太一样,有点疑惑,单独设置ENCUT=310和收敛的K点进行计算无报错。开始收敛处的k点是11*11*11(Gamma scheme),和vaspkit的102功能使用Gamma scheme得出的k区间一致(9*9*9~12*12*12)
另一个是Li6PS5Cl的惯用晶胞,晶胞参数是10.24 angstrom,测试结果是开始收敛处的ENCUT=460<ENMAX*1.3,单独设置ENCUT=460(甚至设置400)和收敛的K点进行计算无报错,开始收敛处的k点是3*3*3(Gamma scheme),和vaspkit生成的KPOINTS也相同。
测试结束后encut_results.txt和kpoints_results.txt记录了每次任务中每个原子的平均能量,可以绘制能量曲线
不过我还是不太确定纠结“先进行ENCUT参数的测试,然后进行K点的测试,最后给出合适的ENCUT值和K点的值”这种思路是否合理,恳请各位老师批评指正

converge-slurm.sh

17.02 KB, 下载次数 Times of downloads: 0

converge-pc.sh

14.96 KB, 下载次数 Times of downloads: 0

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2025-8-15 02:08 , Processed in 0.652057 second(s), 23 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list