bash+vasp+vaspkit能量應(yīng)變計算彈性常數(shù)
腳本分享
計算理論彈性常數(shù)常用的方法是應(yīng)力應(yīng)變,而另一種方法是根據(jù)能量變化,對平衡晶格結(jié)構(gòu)施加小應(yīng)變。能量-應(yīng)變法對應(yīng)于彈性剛度張量由總能量對應(yīng)變的二階導(dǎo)數(shù)導(dǎo)出。一般來說,應(yīng)力應(yīng)變法需要更高的計算精度才能達(dá)到與能量應(yīng)變法相同的精度。然而,能量應(yīng)變法需要的變形比后者小得多。能量應(yīng)變法比應(yīng)力應(yīng)變法具有更小的應(yīng)力敏感性,而且該方法已經(jīng)在VASPKIT程序中實現(xiàn)。
?獨立彈性常數(shù)的數(shù)目取決于晶體的對稱性。對稱性越低意味著獨立的彈性常數(shù)越多。例如,立方晶體有三個彈性常數(shù),而三斜晶體有21個獨立的彈性常數(shù)。

https://vaspkit.com/tutorials.html#mechanical-properties
而通過VASPKIT使用能量應(yīng)變計算理論彈性常數(shù)時,生成的計算文件目錄眾多,需要輔助以bash腳本進(jìn)行計算。
計算所需要的INCAR(參照vaspkit網(wǎng)站例子)
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
預(yù)處理和后處理所需要準(zhǔn)備的VPKIT.in文件,如同后面注釋所說明的,預(yù)處理時第一行開頭為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
筆者準(zhǔn)備了一個空間群為Pmm2(序號為25,屬于斜方晶系)的POSCAR。

通過vaspkit的201功能生成了能量應(yīng)變計算的目錄

總計有9個大文件夾,分別以該空間群所需要的獨立彈性常數(shù)來命名

在每個大文件夾內(nèi)則是以應(yīng)變強度命名的實際計算執(zhí)行的文件夾,文件夾的數(shù)量可根據(jù)預(yù)處理的VPKIT.in文件的最后一行的應(yīng)變設(shè)置來更改。

在每一個應(yīng)變文件夾內(nèi)則是施加了應(yīng)變的POSCAR和事先準(zhǔn)備好的INCAR、KPOINTS和POTCAR文件的鏈接,可直接進(jìn)行vasp計算。
這里通過一個簡單的兩重for循環(huán)命令依次序完成所需要的計算任務(wù)。
for i in C11 C11_C12_C22 C11_C13_C33? C22? C22_C23_C13 C33 C44 C55 C66??
#i為由獨立彈性常數(shù)所命名的上級文件夾名稱
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 為單獨應(yīng)變命名的文件的名稱,可根據(jù)需要靈活改寫
do
cd $k
mpirun -np 24 vasp|tee runlog
#vasp的執(zhí)行命令,請根據(jù)實際計算環(huán)境和需要進(jìn)行改寫
cd ..
echo $i-$k
echo $i-$k
done
cd? ..
done
待腳本執(zhí)行完畢,可更改VPKIT.in文件進(jìn)行后處理并導(dǎo)出數(shù)據(jù)。
為了可以將vaspkit所導(dǎo)出的關(guān)于聲速、德拜溫度等結(jié)果完整記錄,建議執(zhí)行如下命令
vaspkit -task 201|tee vpkitlog
運行過程記錄則會保存在vpkitlog文件(可根據(jù)需要靈活命名)中。
愿有所成

更多內(nèi)容請關(guān)注微信公眾號:IEchoQ
引喻失義? ?妄自菲薄