Linux当中for与VASPKIT“联动”

时间:2024-12-25 作者:Jiaqi Z.

分类:材料计算


在对VASP计算结果进行批处理时,有时需要借助于VASPKIT生成的文件,或者使用VASPKIT对数据进行分析。此时需要使用for循环,或者在脚本语言中实现对VASPKIT菜单的调用。

简单来说,我们希望找到一种命令的调用方法,模拟用户输入选项。而这种方法就是借助于echo命令和管道运算符。

注意:建议提前阅读教程内关于“高级Linux命令”一章的内容。

方法1

使用echo -e选项输出带有转义字符的文本,并借助于管道运算符|将输出的内容传递到vaspkit当中。例如,如果希望一次性生成静态计算的INCAR文件,可以直接写作:

[7Seven@localhost ~]$ echo -e "1\n101\nST" | vaspkit
            

运行后就可以看到vaspkit如同正常操作一般按照顺序执行对应的内容。其中,\n转义字符表示回车,即模拟用户进行回车操作(确认输入内容)

方法2

使用分号(;)依次表示所有的命令,并使用echo组合传递给vaspkit。例如,上述例子还可以写作:

[7Seven@localhost ~]$ (echo 1; echo 10; echo ST) | vaspkit
            

其中使用括号表示将括号内所有内容传递给vaspkit。在这一基础上,可以进一步做更复杂的操作。

在上述方法的基础上,可以使用for循环组合进行批量处理,并进行更复杂操作。例如,将所有当前目录下所有子目录内生成带有D3校正的静态计算INCAR文件,可以写作:

[7Seven@localhost ~]$ for i in *; do cd $i; echo -e "1\n101\nSTD3" | vaspkit; cd $OLDPWD; done
            

注意事项

  1. vaspkit的调用方法取决于不同服务器,以所在服务器为准;
  2. 在使用时,建议首先进行测试,确认vaspkit的选项顺序,在确保正确后再进行批量处理;
  3. VASPKIT参考文献:V. Wang, N. Xu, J.C. Liu, G. Tang, W.T. Geng, VASPKIT: A User-Friendly Interface Facilitating High-Throughput Computing and Analysis Using VASP Code, Computer Physics Communications 267, 108033 (2021). https://doi.org/10.1016/j.cpc.2021.108033

上一篇:Roselia Live 「Stille Nacht, Rosen Nacht」官方返图
下一篇:双曲型、抛物型和椭圆型偏微分方程的区别

同分类上一篇:没有了
同分类下一篇:使用lobster进行COHP分析