hutao0726的个人博客分享 http://blog.sciencenet.cn/u/hutao0726

博文

python批量修改原子坐标搭建应变结构POSCAR

已有 2984 次阅读 2022-4-22 21:09 |个人分类:计算机|系统分类:科研笔记

     一个二层的结构,固定底部一层,上面一层结构发生应变,层间距沿x轴逐渐变大。下午写了一个python脚本来实现。

import sys

f=open('POSCAR','r+')
lines=f.readlines()
#print lines
# judge the c3 value and calculate the new c3 value
with open ('POSCAR','r+') as ff:
    for i in lines[0:9]:
        i_n=i.replace("\r\n",'\n')
        ff.write(i_n)

    for i in lines[9:]:
        c1=float(i.split()[0])
        c3=float(i.split()[2])
        print(c1,c3)
        if c3>0.32:
            c3_new=c3+25.1345/31.31*c1*0.01
            print(str(c3), str(c3_new))
#           str() transform values into string and replace().replace() in one line
            l=i.replace(str(c3),str(c3_new)).replace("\r\n",' ')+"T T T \n"
            ff.write(l)
        else:
            m=i.replace("\r\n",' ')+"F F F \n"
            ff.write(m)
#    lines.insert(9,'Selective dynamics')  # 'Selective dynamics' has been inserted manually
ff.close

# write lines in a new POSCAR
fp=file('POSCAR')
lines=[]
for line in fp:
    lines.append(line)
fp.close

       搭建的结构如图所示:

kinetics-2.jpg

        然后将搭建的结构作为初始结构,进行固定部分原子的结构优化。





https://blog.sciencenet.cn/blog-907836-1335188.html

上一篇:觅食的小猫
下一篇:《蛤蟆先生去看心理医生》摘录
收藏 IP: 222.92.237.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-25 08:24

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部