脚本分享
计算理论弹性常数常用的方法是应力应变,而另一种方法是根据能量变化,对平衡晶格结构施加小应变。能量-应变法对应于弹性刚度张量由总能量对应变的二阶导数导出。一般来说,应力应变法需要更高的计算精度才能达到与能量应变法相同的精度。然而,能量应变法需要的变形比后者小得多。能量应变法比应力应变法具有更小的应力敏感性,而且该方法已经在VASPKIT程序中实现。
独立弹性常数的数目取决于晶体的对称性。对称性越低意味着独立的弹性常数越多。例如,立方晶体有三个弹性常数,而三斜晶体有21个独立的弹性常数。
https://vaspkit.com/tutorials.html#mechanical-properties
而通过VASPKIT使用能量应变计算理论弹性常数时,生成的计算文件目录众多,需要辅助以bash脚本进行计算。
计算所需要的INCAR(参照vaspkit网站例子
Global Parameters预处理和后处理所需要准备的http://VPKIT.in文件,如同后面注释所说明的,预处理时第一行开头为1,后处理时为2.
笔者准备了一个空间群为Pmm2(序号为25,属于斜方晶系)的POSCAR。
通过vaspkit的201功能生成了能量应变计算的目录
总计有9个大文件夹,分别以该空间群所需要的独立弹性常数来命名
在每个大文件夹内则是以应变强度命名的实际计算执行的文件夹,文件夹的数量可根据预处理的http://VPKIT.in文件的最后一行的应变设置来更改。
在每一个应变文件夹内则是施加了应变的POSCAR和事先准备好的INCAR、KPOINTS和POTCAR文件的链接,可直接进行vasp计算。
这里通过一个简单的两重for循环命令依次序完成所需要的计算任务。
for i in C11 C11_C12_C22 C11_C13_C33 C22 C22_C23_C13 C33 C44 C55 C66待脚本执行完毕,可更改http://VPKIT.in文件进行后处理并导出数据。
为了可以将vaspkit所导出的关于声速、德拜温度等结果完整记录,建议执行如下命令
vaspkit -task 201|tee vpkitlog运行过程记录则会保存在vpkitlog文件(可根据需要灵活命名)中。
愿有所成
更多内容请关注微信公众号:IEchoQ
引喻失义 妄自菲薄
上一篇:九卦| 零售银行的“攻坚战”