24小时热门版块排行榜    

查看: 9240  |  回复: 25
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

magiczerg

金虫 (小有名气)

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

复杂的情况,以六角结构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 ]
回复此楼

» 收录本帖的淘帖专辑推荐

仿真建模与计算 计算化学-辅助工具 科研

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

valenhou001

至尊木虫 (职业作家)

★ ★
qasd(金币+2):谢谢 2010-08-16 19:51:27
magiczerg(金币+10):谢谢参与,我算的系统分子比较大。用ISIF=3不太合适。我只想确认一下a的值是不是取平衡体积下对应的$i啊?然后用平衡体积和啊算出c值?不知道我的理解对不? 2010-08-17 08:56:47
引用回帖:
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就可以了。
7楼2010-08-16 18:11:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 26 个回答

lono75

铁杆木虫 (著名写手)

★ ★
magiczerg(金币+2):谢谢交流 2010-08-14 21:38:20
zzy870720z(金币+2):谢谢指教 2010-08-14 21:40:24
magiczerg(金币+1):侯老师的教程里:“改变原胞的形状,也就是调整原胞中的c/a和b/a的值”,你这里是如何保持保持c/a不变的啊? 2010-08-14 21:45:16
通过设定V不变,驰豫原子位置及形状(c/a)->平衡位置
在做$i循环时,固定住c/a,(平衡位置的基矢是保持不变)
此时i循环,->改变V(c,a相应改变,但c/a不变),->TOTEN
拟合E-V曲线,
找到E最小时的V,->确定c,a(平衡位置晶格参数)
由天命,成人事!
2楼2010-08-14 20:49:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jghe

金虫 (著名写手)

★ ★
magiczerg(金币+3):谢谢参与 2010-08-15 08:16:06
qasd(金币+2):谢谢 2010-08-15 08:57:44
我觉得
1)保持V不变(改变形状和离子位置),不同的V对应于不同的E --〉得到E-V曲线,确定平衡时的V0
2)在平衡体积V0下,改变$i(当然c/a值要变了),找到平衡晶格常数
3楼2010-08-14 21:45:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

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 ]
4楼2010-08-15 08:24:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见