欢迎光临散文网 会员登陆 & 注册

bash+vasp+vaspkit能量应变计算弹性常数

2022-09-02 13:56 作者:IechoQ  | 我要投稿

脚本分享



计算理论弹性常数常用的方法是应力应变,而另一种方法是根据能量变化,对平衡晶格结构施加小应变。能量-应变法对应于弹性刚度张量由总能量对应变的二阶导数导出。一般来说,应力应变法需要更高的计算精度才能达到与能量应变法相同的精度。然而,能量应变法需要的变形比后者小得多。能量应变法比应力应变法具有更小的应力敏感性,而且该方法已经在VASPKIT程序中实现。

 独立弹性常数的数目取决于晶体的对称性。对称性越低意味着独立的弹性常数越多。例如,立方晶体有三个弹性常数,而三斜晶体有21个独立的弹性常数。

图片

https://vaspkit.com/tutorials.html#mechanical-properties

而通过VASPKIT使用能量应变计算理论弹性常数时,生成的计算文件目录众多,需要辅助以bash脚本进行计算。


计算所需要的INCAR(参照vaspkit网站例子)

  • Global Parameters

  •   ISTART =  0

  •   LREAL  =  F

  •   PREC   =  High

  •   LWAVE  = F

  •   LCHARG = F

  •   ADDGRID= .TRUE.

  • Electronic Relaxation

  •   ISMEAR =  0

  •   SIGMA  =  0.05

  •   NELM   =  40

  •   NELMIN =  4

  •   EDIFF  =  1E-08

  • Ionic Relaxation

  •   NELMIN =  6

  •   NSW    =  100

  •   IBRION =  2

  •   ISIF   =  2    (Must be 2)

  •   EDIFFG = -1E-02

预处理和后处理所需要准备的VPKIT.in文件,如同后面注释所说明的,预处理时第一行开头为1,后处理时为2.


1                    ! 1 for pre-processing; 2 for post-processing

3D                   ! 2D for two-dimentional, 3D for bulk

7                    ! number of strain case

-0.015 -0.010 -0.005 0.000 0.005 0.010 0.015  ! Strain range


笔者准备了一个空间群为Pmm2(序号为25,属于斜方晶系)的POSCAR。

图片

通过vaspkit的201功能生成了能量应变计算的目录

图片


总计有9个大文件夹,分别以该空间群所需要的独立弹性常数来命名

图片

在每个大文件夹内则是以应变强度命名的实际计算执行的文件夹,文件夹的数量可根据预处理的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  

#i为由独立弹性常数所命名的上级文件夹名称

do 

cd $i

for k in strain_0.000  strain_-0.005  strain_+0.005  strain_-0.010  strain_+0.010  strain_-0.015  strain_+0.015

#k 为单独应变命名的文件的名称,可根据需要灵活改写

do

cd $k

mpirun -np 24 vasp|tee runlog

#vasp的执行命令,请根据实际计算环境和需要进行改写

cd ..

echo $i-$k

echo $i-$k

done

cd  ..

done


待脚本执行完毕,可更改VPKIT.in文件进行后处理并导出数据。

为了可以将vaspkit所导出的关于声速、德拜温度等结果完整记录,建议执行如下命令


vaspkit -task 201|tee vpkitlog

运行过程记录则会保存在vpkitlog文件(可根据需要灵活命名)中。







愿有所成



图片

更多内容请关注微信公众号:IEchoQ

引喻失义   妄自菲薄



bash+vasp+vaspkit能量应变计算弹性常数的评论 (共 条)

分享到微博请遵守国家法律