在前面文章中已经介绍过有关通过vaspkit以能量应变方式计算弹性常数的方法原理以及使用的脚本。由于在计算过程中对于不同晶系不同空间群的体系,vaspkit因对于模型的识别的不同,而且由于部分考虑到掺杂元素的引入,改变了点群对称性使得vaspkit识别出的空间群不同,产生的施加应变的计算任务多有差别。
这里分享一个可以无视生成文件夹差异的计算脚本,可在两层目录下计算所有具有可计算文件的文件夹里的任务。
注意:在使用前请务必判断并明确当前目录里通过vaspkit生成的文件夹的任务数量和计算的目的。如果只需要计算某一部分的文件夹的任务,建议使用前文所分享的脚本进行精细修改以进行所要求的计算任务。
这里使用一个已经通过vaspkit 201功能生成了计算弹性常数的任务文件夹,包括了当前目录中众多C开头的文件夹和每个C开头的文件夹下施加了不同应变的strain文件夹。
编辑
添加图片注释,不超过 140 字(可选)
计算执行脚本如下
-
#!/bin/bash
path=`pwd`
#记录当前文件夹位置并定义到变量 path中,称为初始目录
pwd
for cij in `ls -F | grep /$`
#ls -F| grep /$ 命令为返回当前文件夹中所有子目录
#将所有子目录添加到变量cij中,并准备进行for循环
do
cd ${path}/$cij
#进入cij变量所代表的子目录中
pwd
for s in strain_*
#将cij代表的子目录中所有strain文件夹添加到变量s中
#此部添加变量s的方式可更改为添加变量cij的方式,但不建议这么做
do
cd ${path}/$cij/$s
#进入初始目录下变量cij和变量s组成的目录,由于for循环的设置,将遍历所有可计算的strain文件夹
pwd
mpirun -np 16 vasp_std
#执行vasp计算
cd ${path}
#返回初始目录
pwd
done
done
愿有所成
引喻失义 妄自菲薄