当前位置: 首页 > 第一原理 >【求助】侯老师的vasp入门的晶格优化部分没看懂,问一下

【求助】侯老师的vasp入门的晶格优化部分没看懂,问一下

作者 magiczerg
来源: 小木虫 1250 25 举报帖子
+关注

复杂的情况,以六角结构Mg的晶格常数为例
1.先进行一次体积保持不变的粒子驰豫的计算(ISIF=5)
2再把优化得到的CONTCAR拷贝成POSCAR,进行一次静态的计算
3对a的值取10个左右的点,每个点重复上面两步,得到静态计算下volume-Etot的关系。
这三部的脚步可以通过以下脚步run_cell来进行,内容如下:
#!/bin/sh
rm WAVECAR
for i in   5.20  5.23  5.26  5.29 5.32 5.35 5.38  5.41 5.44  5.47
do
cat > POSCAR << !
ureadopef
$i
0                      -1                0
0.8660254        0.5              0
0                      0               1.6230530
2
Direct
0.666666667  0.333333333    0.75
0.333333333  0.666666667    0.25
!
cp INCAR.relax INCAR
echo "a=$i angestrom"; mpiexec -np 8 vasp
cp CONTCAR POSCAR
cp INCAR.static INCAR
echo "a= $i angstrom ";mpiexec -np 8 vasp
E=`grep "TOTEN" OUTCAR | tail -1 | awk '{printf  "%12.6f \n", $5}'`
V=`grep "volume" OUTCAR | tail -1 | awk '{printf "%12.4f \n", $5}'`
echo $V $E >>EtVo.dat
done
4.采用状态方程拟合得到的平衡态下的体积,体弹性模量。
5.在该体积下,重复上面第2步和第3步,得到平衡状态下的其他晶胞参数。这一步也就是:在的到了E(V)曲线后,通过状态方程拟合得到平衡状态下的体积,计算出上面脚本中变量$i的值(弱弱的问一句,晶胞形状都改变了,怎么算a的值啊?就算还是按六角结构来算,a和c的关系不知道,怎么算啊,还是按照初始时a/c的比值来算吗?
($i
0                      -1                0
0.8660254        0.5              0
0                      0               1.6230530)

并改变$i的循环值,再运行run_cell计算一次,得到其他的结构参数c和位置u。
弱弱的再问:改变$i的循环值不还是在算a吗?算a和算c有什么区别吗?另外算位置u是不是固定晶胞形状和体积只改变原子位置就行了,改一下INCAR就可以了,没必要在运行runcell了吧?

[ Last edited by magiczerg on 2010-8-14 at 20:19 ] 返回小木虫查看更多

今日热帖
  • 精华评论
  • lono75

    通过设定V不变,驰豫原子位置及形状(c/a)->平衡位置
    在做$i循环时,固定住c/a,(平衡位置的基矢是保持不变)
    此时i循环,->改变V(c,a相应改变,但c/a不变),->TOTEN
    拟合E-V曲线,
    找到E最小时的V,->确定c,a(平衡位置晶格参数)

  • jghe

    我觉得
    1)保持V不变(改变形状和离子位置),不同的V对应于不同的E --〉得到E-V曲线,确定平衡时的V0
    2)在平衡体积V0下,改变$i(当然c/a值要变了),找到平衡晶格常数

  • magiczerg

    引用回帖:
    Originally posted by jghe at 2010-08-14 21:45:50:
    我觉得
    1)保持V不变(改变形状和离子位置),不同的V对应于不同的E --〉得到E-V曲线,确定平衡时的V0
    2)在平衡体积V0下,改变$i(当然c/a值要变了),找到平衡晶格常数

    能不能更详细一点啊。
    随便举个例子假如是一个四方晶系,未优化前a=b=5A  c=4A
    POSCAR为
    example
    1
    5   0  0
    0   5  0
    0   0  4
    2
    Direct
    0       0       0
    0.25  0.5  0.5
    1.经过优化后,根据E-V曲线,发现V=110(A**3)能量最低。那此时V0=110(A**3)
    2.在V0下改变$i,如何写POSCAR才能保证体积是V0啊?runcell中写POSCAR这一段如何实现啊?$i的范围是怎么确定的,能不能以此为例说明一下啊,谢谢

    [ Last edited by magiczerg on 2010-8-15 at 08:26 ]

  • jghe

    这个你子计算吧,c=V0/(a*b), c的范围可以参考Vo对应的值

  • hcdd1986

    哦? 我用CASTEP的不用这个,不过依然顶一个

  • valenhou001

    引用回帖:
    Originally posted by magiczerg at 2010-08-14 20:14:33:
    复杂的情况,以六角结构Mg的晶格常数为例
    1.先进行一次体积保持不变的粒子驰豫的计算(ISIF=5)
    2再把优化得到的CONTCAR拷贝成POSCAR,进行一次静态的计算
    3对a的值取10个左右的点,每个点重复上面两步,得到静 ...

    弄这个run_cell的东西,主要是为了得到E-V曲线,然后通过状态方程拟合得到平衡体积和体弹性模量。如果你只想得到平衡体积以及相应的晶格常数和原子位置,直接ISIF=3做fully optimization就可以了。

猜你喜欢
应助之星
下载小木虫APP
与700万科研达人随时交流
  • 二维码
  • IOS
  • 安卓