| 查看: 5013 | 回复: 14 | ||
| 本帖产生 2 个 1ST强帖 ,点击这里进行查看 | ||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||
mika金虫 (正式写手)
纳米宝贝
|
[求助]
从outcar中提取原子坐标的脚本
|
|
| 想从outcar里面提取每一步自洽后指定原子的xyz坐标,请问有没有相关的脚本啊,谢谢 |
» 猜你喜欢
2025冷门绝学什么时候出结果
已经有3人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
康复大学泰山学者周祺惠团队招收博士研究生
已经有6人回复
AI论文写作工具:是科研加速器还是学术作弊器?
已经有3人回复
孩子确诊有中度注意力缺陷
已经有6人回复
2026博士申请-功能高分子,水凝胶方向
已经有6人回复
论文投稿,期刊推荐
已经有4人回复
硕士和导师闹得不愉快
已经有13人回复
请问2026国家基金面上项目会启动申2停1吗
已经有5人回复
同一篇文章,用不同账号投稿对编辑决定是否送审有没有影响?
已经有3人回复
11楼2012-05-04 13:25:06
gfei2008
木虫 (小有名气)
- 应助: 6 (幼儿园)
- 金币: 1716.7
- 红花: 1
- 帖子: 176
- 在线: 116.2小时
- 虫号: 544222
- 注册: 2008-04-12
- 专业: 凝聚态物性 II :电子结构
2楼2012-05-02 23:37:23
dxf_dxf_dxf
银虫 (小有名气)
- 1ST强帖: 4
- 应助: 15 (小学生)
- 金币: 269.1
- 红花: 3
- 帖子: 104
- 在线: 29.1小时
- 虫号: 1449737
- 注册: 2011-10-19
- 性别: GG
- 专业: 凝聚态物性 II :电子结构
【答案】应助回帖
★ ★ ★ ★ ★
感谢参与,应助指数 +1
fzx2008: 金币+5, 1ST强帖+1, 谢谢指教,详细 2012-05-03 13:04:02
感谢参与,应助指数 +1
fzx2008: 金币+5, 1ST强帖+1, 谢谢指教,详细 2012-05-03 13:04:02
|
你好!我用官方的例子来解释。 首先,vasp进行几何优化时(IBRION=2 or 3,ISIF=2,3,5等)时,才会移动原子。vasp会根据ISIF的值改变晶格常数或移动原子位置,求出体系能量最小或受力最小对应的几何结构。当设置了IBRION和ISIF参数之后,vasp实际会进行三层循环(见mannual09版7.1节Fig3): 最内层循环,是用来矩阵对角化,求解薛定谔方程。 vasp会先给出一个初始解,带入薛定谔方程。 如果没有达到收敛条件,则修改后再次带入方程 中层循环,是用来求出自洽的电荷密度。 vasp会先猜测一个初始的电荷密度,由此构造薛定谔方程,求解得到波函数,再根据新的波函数算出(输出的)电荷密度,和(输入的)初始电荷密度对比。 如果差别没有达到收敛条件,则二者混合后作为新的输入电荷密度,重复上一步。 在mannual6.7节NWRITE-tag中,这一步对应于“electronic step” 在OUTCAR中,对应类似与“----------- Iteration 3( 2) ----------------”中的“2” 外层循环,是用来求出能量最低、受力最小的几何结构。 vasp会根据初始POSCAR文件求出体系的总能和受力情况。根据算法改变晶格常数或离子位置,得到新的结构,再次求出总能和受力。 如果差别或绝对值未达到收敛条件,则继续改变晶格常数或离子位置。 在mannual6.7节NWRITE-tag中,这一步对应于“ion step” 在OUTCAR中,对应类似与“----------- Iteration 3( 2) ----------------”中的“3” 如果在INCAR文件中没有设置NWRITE参数,则在OUTCAR文件中可以看到每一次ion step结束后vasp会给出优化情况: vasp.5.2.2 15Apr09 complex executed on LinuxIFC date 2012.05.03 12:04:41 running on 8 nodes distr: one band on 1 nodes, 8 groups -------------------------------------------------------------------------------------------------------- INCAR: ... -------------------------------------------------------------------------------------------------------- ... ... ----------------------------------------- Iteration 1( 1) --------------------------------------- POTLOK: cpu time 0.01: real time 0.01 ... ----------------------------------------- Iteration 1( 2) --------------------------------------- ... -------------------------------------------------------------------------------------------------------- ... ------------------------aborting loop because EDIFF is reached---------------------------------------- ... VOLUME and BASIS-vectors are now : ----------------------------------------------------------------------------- ... direct lattice vectors reciprocal lattice vectors 0.000000000 2.750000000 2.750000000 -0.181818182 0.181818182 0.181818182 2.750000000 0.000000000 2.750000000 0.181818182 -0.181818182 0.181818182 2.750000000 2.750000000 0.000000000 0.181818182 0.181818182 -0.181818182 ... POSITION TOTAL-FORCE (eV/Angst) ----------------------------------------------------------------------------------- 4.81250 4.81250 4.81250 0.000000 0.000000 0.000000 0.68750 0.68750 0.68750 0.000000 0.000000 0.000000 ----------------------------------------------------------------------------------- ... ----------------------------------------- Iteration 2( 1) --------------------------------------- ... ------------------------ aborting loop because EDIFF is reached---------------------------------------- ... VOLUME and BASIS-vectors are now : ----------------------------------------------------------------------------- ... direct lattice vectors reciprocal lattice vectors 0.000000000 2.721754370 2.721754370 -0.183705042 0.183705042 0.183705042 2.721754370 0.000000000 2.721754370 0.183705042 -0.183705042 0.183705042 2.721754370 2.721754370 0.000000000 0.183705042 0.183705042 -0.183705042 ... POSITION TOTAL-FORCE (eV/Angst) ----------------------------------------------------------------------------------- 4.76307 4.76307 4.76307 0.000000 0.000000 0.000000 0.68044 0.68044 0.68044 0.000000 0.000000 0.000000 ----------------------------------------------------------------------------------- ... ----------------------------------------- Iteration 3( 1) --------------------------------------- ... ------------------------ aborting loop because EDIFF is reached ---------------------------------------- ... VOLUME and BASIS-vectors are now : ----------------------------------------------------------------------------- ... direct lattice vectors reciprocal lattice vectors 0.000000000 2.732453619 2.732453619 -0.182985723 0.182985723 0.182985723 2.732453619 0.000000000 2.732453619 0.182985723 -0.182985723 0.182985723 2.732453619 2.732453619 0.000000000 0.182985723 0.182985723 -0.182985723 ... POSITION TOTAL-FORCE (eV/Angst) ----------------------------------------------------------------------------------- 4.78179 4.78179 4.78179 0.000000 0.000000 0.000000 0.68311 0.68311 0.68311 0.000000 0.000000 0.000000 ----------------------------------------------------------------------------------- ... -------------------------------------------------------------------------------------------------------- POTLOK: cpu time 0.01: real time 0.01 -------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------- reached required accuracy - stopping structural energy minimisation ... 由上可知,整个优化过程,外层循环执行了3次,共产生了四个结构: 初始结构 第一次外层循环结束后的结构 第二次外层循环结束后的结构 第三次外层循环结束后的结构 |
» 本帖附件资源列表
-
欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com - 附件 1 : 2_4_diamondSi_vol_rex.tar.bz2
2012-05-03 12:15:48, 1.39 M
3楼2012-05-03 12:59:57
dxf_dxf_dxf
银虫 (小有名气)
- 1ST强帖: 4
- 应助: 15 (小学生)
- 金币: 269.1
- 红花: 3
- 帖子: 104
- 在线: 29.1小时
- 虫号: 1449737
- 注册: 2011-10-19
- 性别: GG
- 专业: 凝聚态物性 II :电子结构
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
fzx2008: 1ST强帖+1, 谢谢指教 2012-05-03 13:34:14
uuv2010: 金币+10, 多谢分享~ 2012-05-04 18:36:54
感谢参与,应助指数 +1
fzx2008: 1ST强帖+1, 谢谢指教 2012-05-03 13:34:14
uuv2010: 金币+10, 多谢分享~ 2012-05-04 18:36:54
|
由此给出思路及相应脚本: 首先,要知道体系有多少个原子。这个可以从POSCAR中读取。 然后,要告诉脚本,你关心的是哪个原子。我们把这个原子在POSCAR中的序号写到一个叫“in”的文件里面,让脚本去读就好了! 再然后,利用grep从OUTCAR中读取我们关心的信息,并加以处理。 依据本例,体系共有2个原子,假设我们关心POSCAR中的第二个原子。 首先,让grep去找关键字“POSITION”,我们关心的数字在这个关键字之后的1(“---"一行)+2(2个原子)行。所以用 命令,把冗长的OUTCAR简化成如下的模样: 这样还不够。我们要把”POSITON“行、”-------“行、分隔符”--“删掉: 这3种类型的行的共同特点是,如果以空格(默认的)为分隔符,则最多只有2项,第三项为空。于是用awk语句的$3>0来过滤掉它们,然后用print $1“ ”$2" "$3打印有用的前三个数字(我们不关心受力) 于是结果变成这个样子: 这样还不够。我们需要的只是我们关心的那一个原子。怎么把它调出来呢? 由于我们保留了所有的原子的位置,因此到目前为止,输出的行数应该=体系原子数x外层循环次数。我们只需要找到行数对体系原子数取余数后结果为我们关心的原子对应的序数的行就行了: NR%2==0(第2个原子,也就是余数为2,即余数为0) 结果如下: 大功告成! 所以语句如下: 当然,你需要明白“A3”中3的含义,还有"NR%2==0"中2和0的含义。否则生搬硬套会得到错误的结果~ |
4楼2012-05-03 13:26:11













回复此楼