enddo
C%%%%%%%% Write the new vector under strain%%%%%%%%%%%% do i=1,3
write(*,100)(strvect(i,j),j=1,3) enddo
100 format(3f20.15)
C%%%%%%%%% Create the POSCAR for total energy calculation %%%%%%%%%%%%%%5
write(3,'(A10)') title write(3,'(f15.10)') alat do i=1,3
write(3,100)(strvect(i,j),j=1,3) enddo
write(3,'(10I4)') (natomi(i), i=1,ntype) write(3,'(A6)') Direct do i=1, nn
write(3,100) (pos(i,j),j=1,3) enddo C%%%%%%% end
towidth 0.8pt height 0.25cm depth 0cmwidth 1.025height 0.8pt depth 0cmwidth 0.8pt height 0.25cm depth 0cm
在defvector.f中,原子种类的数目由变量ntype来定义的,最大为10,如果原子的种类数目太大,需自己手动调大数组natomi(10)以及输出时\write(3,'(10I4)') (natomi(i), i=1,ntype)\的格式\。 在defvector.f中设置好了特定的应变后,就可以编译defvector.f(使用g77 -o defector.x defector.f)得到模块defvector.x。
?
准备好VASP计算的输入文件KPOINTS和POTCAR。以及进行原子位置驰豫计算的INCAR.relax,它的内容如下:
towidth 0.8pt height 0cm depth 0.25cmwidth 1.025height 0cm depth 0.8ptwidth 0.8pt height 0cm depth 0.25cm 1.0
SYSTEM = AlN ENCUT = 400 ISTART = 0 ICHARG = 2 ISMEAR = 0; SIGMA =
0.2 NSW = 60; IBRION = 2 EDIFF = 1E-5 EDIFFG = -1E-2 ISIF = 2 POTIM = 0.2 PREC = Accurate LWAVE = .FALSE.
towidth 0.8pt height 0.25cm depth 0cmwidth 1.025height 0.8pt depth 0cmwidth 0.8pt height 0.25cm depth 0cm
另外在准备对优化得到的结构进行总能进行的INCAR.static,它的内容如下:
towidth 0.8pt height 0cm depth 0.25cmwidth 1.025height 0cm depth 0.8ptwidth 0.8pt height 0cm depth 0.25cm 1.0
SYSTEM = AlN ENCUT = 400 ISTART = 0 ICHARG = 2 ISMEAR = -5 EDIFF =
1E-5 PREC = Accurate LWAVE = .FALSE.
towidth 0.8pt height 0.25cm depth 0cmwidth 1.025height 0.8pt depth 0cmwidth 0.8pt height 0.25cm depth 0cm
总的说来,就是先对应变后的POSCAR进行固定基矢,只对原子位置的优化,再对优化得到的结构进行静态总能计算得到应变体系后的总能
。其中应变后的初始POSCAR通过defvector.x来得到。
?
对一系列幅度 的特定应变进行上一步的计算。最后得到一组
数据。然后对它进行二次函数拟合得到二次项的系数。
注意: 是未应变是体系的总能, 是未应变体系的体积。在VASP
计算中它们的数值单位是eV和? 。1 eV/? = 160.2 GPa。
前面的原子位置优化和总能计算等可以通过一个bash脚本来进行,如: towidth 0.8pt height 0cm depth 0.25cmwidth 1.025height 0cm depth 0.8ptwidth 0.8pt height 0cm depth 0.25cm 1.0
#!/bin/sh for i in -0.018 -0.015 -0.012 -0.09 -0.06 -0.03 0.00 \\
0.03 0.06 0.09 0.012 0.015 0.018 do echo $i | defvector.x cp fort.3 POSCAR
#### cat > INCAR <
ISMEAR = 0; SIGMA = 0.2 NSW = 60; IBRION = 2 EDIFF = 1E-5 EDIFFG =
-1E-2 ISIF = 2 POTIM = 0.2 PREC = Accurate LWAVE = .FALSE. LCHARG =.FALSE. !
echo \
cp CONTCAR pos.$i cp CONTCAR POSCAR
cat > INCAR <
echo \
E=`grep \out.$i | tail -1 | awk '{printf \\\n\$5 }'` echo $i $E >>SUMMARY
done
towidth 0.8pt height 0.25cm depth 0cmwidth 1.025height 0.8pt depth 0cmwidth 0.8pt height 0.25cm depth 0cm
?
对其他特定的应变,按上面第2和3步再做一系列的计算得到相应的一组
数据,以及拟合。
对其他晶系(比如正交晶体)的弹性应变能、应变和弹性常数的关系,可以参考文献 [#!RavindranP:Denftc:1998!#,#!Hou05!#]。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库VASP几个计算实例(4)在线全文阅读。
相关推荐: