计算化学公社

 找回密码 Forget password
 注册 Register
Views: 2248|回复 Reply: 5
打印 Print 上一主题 Last thread 下一主题 Next thread

[算法与编程] 求助AIMD结果分析关于python脚本的运用与错误提示

[复制链接 Copy URL]

181

帖子

0

威望

731

eV
积分
912

Level 4 (黑子)

跳转到指定楼层 Go to specific reply
楼主
用AIMD跑分子动力学,想用python脚本处理,显示MD过程中键长的变化的程序MD-bond.py,但是我们复制脚本进去运行,一直提示缩进错误,请高手指点。以下是我复制的脚本内容
import numpy as np

# input atoms No.(b1,b2) bwtween which you want to calculate the bond

# input the MD-steps (Mnum) in your VASP MD calculation

b1= 12

b2= 27

Mnum=10000

b1=b1-1

b2=b2-1

a=open("XDATCAR",'r+')

b=open("bond.dat",'w+')

#skip line1-2

for i in range(2):

a.readline()

#get vectors

X=a.readline().strip().split()

Y=a.readline().strip().split()

Z=a.readline().strip().split()

X=[float(X) for i in range(3)]

Y=[float(Y) for i in range(3)]

Z=[float(Z) for i in range(3)]

#skip line-6

a.readline()

#get total atom number

num=a.readline().strip().split()

num=[int(num) for i in range(len(num))]

num=sum(num)

#define function of bond-length

def bond(m,n):

r=[n-m for i in range(3)]

r2=[r[0]*X+r[1]*Y+r[2]*Z for i in range(3)]

r3=np.sqrt(r2[0]**2+r2[1]**2+r2[2]**2)

return r3

#get bond-length of each step

def bond_s():

a.readline() #skip the line "Direct configuration="

coord=[]

for i in range(num):

r=a.readline().strip().split()

r=[float(r) for i in range(3)]

coord.append(r)

C_chose=[coord[b1],coord[b2]]

return C_chose

for j in range(Mnum):

m,n=bond_s()

r=bond(m,n)

b.write(str(r)+"n")

150

帖子

0

威望

3923

eV
积分
4073

Level 6 (一方通行)

2#
发表于 Post on 2022-10-6 16:48:16 | 只看该作者 Only view this author
方法很简单,你只需要学习Python基本语法并写一些代码,就能理解并解决这个问题;方法也很难,因为你需要学习Python基本语法并写一些代码,才能理解并解决这个问题

1万

帖子

0

威望

9888

eV
积分
22133

Level 6 (一方通行)

3#
发表于 Post on 2022-10-6 16:57:34 | 只看该作者 Only view this author
python常识:复制的时候必须保证每行最前面的空格数不变。你应该是复制的时候把每行前面的空格复制丢了
Zikuan Wang
山东大学光学高等研究中心 研究员
BDF(https://bdf-manual.readthedocs.io/zh_CN/latest/Introduction.html)、ORCA(https://orcaforum.kofo.mpg.de/index.php)开发团队成员
Google Scholar: https://scholar.google.com/citations?user=XW6C6eQAAAAJ
ORCID: https://orcid.org/0000-0002-4540-8734
主页:http://www.qitcs.qd.sdu.edu.cn/info/1133/1776.htm
GitHub:https://github.com/wzkchem5
本团队长期招收研究生,有意者可私信联系

181

帖子

0

威望

731

eV
积分
912

Level 4 (黑子)

4#
 楼主 Author| 发表于 Post on 2022-10-10 10:40:20 | 只看该作者 Only view this author
wzkchem5 发表于 2022-10-6 16:57
python常识:复制的时候必须保证每行最前面的空格数不变。你应该是复制的时候把每行前面的空格复制丢了

是的,原帖子给的没有空格,所以就不行

7

帖子

0

威望

394

eV
积分
401

Level 3 能力者

5#
发表于 Post on 2024-6-1 11:09:42 | 只看该作者 Only view this author
chen0201 发表于 2022-10-10 10:40
是的,原帖子给的没有空格,所以就不行

你好,请问还有原帖网页吗,求一个

181

帖子

0

威望

731

eV
积分
912

Level 4 (黑子)

6#
 楼主 Author| 发表于 Post on 2024-7-5 17:29:41 | 只看该作者 Only view this author
黑胡桃 发表于 2024-6-1 11:09
你好,请问还有原帖网页吗,求一个

不好意思,没有了,建议查找脚本关键词哦

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2026-2-24 19:18 , Processed in 0.176759 second(s), 20 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list