计算化学公社
标题:
VASP收敛性测试bash小脚本
[打印本页]
作者Author:
hydrogen2333
时间:
yesterday 17:27
标题:
VASP收敛性测试bash小脚本
本帖最后由 hydrogen2333 于 2025-8-14 17:42 编辑
让AI写了一个小脚本用于VASP收敛性测试,面向集群上的slurm作业系统和个人计算机。
前者原来提交任务的命令是
sbatch slurm.sh
复制代码
后者原来提交任务的命令是
mpirun -np 8 vasp_std
复制代码
集群上需要将脚本放在包含"INCAR POSCAR KPOINTS POTCAR slurm.sh(原提交任务的脚本)"五个文件的目录下,然后运行收敛性测试脚本就行;个人计算机上则只需放在包含四个输入文件的目录就行。
测试脚本会先进行ENCUT参数的测试,然后进行K点的测试,最后给出合适的ENCUT值和K点的值。集群那个测试脚本开头的内容可以自己设定,如下:
ENCUT_START=200 #测试起始截断能
ENCUT_END=500 #测试终止截断能
ENCUT_STEP=20 #测试截断能步长
NATOMS=2 #POSCAR中原子总数
ENERGY_CRITERION=0.001 #收敛标准:前后两次测试任务中每个原子的平均能量差小于0.001 eV/原子的第一个点处
MAX_JOBS=999 #脚本向集群提交的最大任务数量
KPOINT_SCHEME="Gamma" #选择使用Gamma方案或者Mp方案
KPOINT_START=1 #测试起始KPOINTS
KPOINT_END=8 #测试终止KPOINTS
KPOINT_STEP=1 #测试KPOINTS步长
SLURM_SCRIPT="slurm.sh" #原集群上提交任务的脚本,拷贝一份到测试脚本目录下
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点的值”这种思路是否合理,恳请各位老师批评指正
欢迎光临 计算化学公社 (http://ccc.keinsci.com/)
Powered by Discuz! X3.3