在前面文章中已经介绍过有关通过vaspkit以能量应变方式计算弹性常数的方法原理以及使用的脚本。由于在计算过程中对于不同晶系不同空间群的体系,vaspkit因对于模型的识别的不同,而且由于部分考虑到掺杂元素的引入,改变了点群对称性使得vaspkit识别出的空间群不同,产生的施加应变的计算任务多有差别。

这里分享一个可以无视生成文件夹差异的计算脚本,可在两层目录下计算所有具有可计算文件的文件夹里的任务。

注意:在使用前请务必判断并明确当前目录里通过vaspkit生成的文件夹的任务数量和计算的目的。如果只需要计算某一部分的文件夹的任务,建议使用前文所分享的脚本进行精细修改以进行所要求的计算任务。


(资料图片仅供参考)

这里使用一个已经通过vaspkit 201功能生成了计算弹性常数的任务文件夹,包括了当前目录中众多C开头的文件夹和每个C开头的文件夹下施加了不同应变的strain文件夹。

编辑

计算执行脚本如下

#!/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

愿有所成

IEchoQ

引喻失义   妄自菲薄

推荐内容