计算化学公社

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

[ORCA] 分享一个把xyz坐标转换为gzmt用于ORCA输入坐标和做柔性扫描的方法

[复制链接 Copy URL]

32

帖子

0

威望

317

eV
积分
349

Level 3 能力者

用ORCA做柔性扫描时,输入坐标采用笛卡尔坐标时(xyz)时报错停止。
Famalab的一个教程(https://www.molphys.org/orca_tut ... ternal%20cordinates)中提到用ORCA做扫描应该用内坐标或者gzmt,检索了中文网页,把xyz转化为内坐标的页面不多。
徐哈哈的博文“【小工具】利用Python脚本将分子笛卡尔坐标转化为内坐标” 输出结果实际为gzmt,在其基础修改后得到将xyz转为gzmt的脚本如下:
  1. from ase.io import read as aseread

  2. def std_angle(x):
  3.     return x if x < 180 else x - 360

  4. def genzmt(xyz_file):
  5.     atom = aseread(xyz_file)
  6.     string = ''
  7.     symbols = list(atom.symbols)
  8.     for idx in range(len(atom)):
  9.         if idx == 0:
  10.             string = '%3s\n'%symbols[idx]
  11.         elif idx == 1:
  12.             string += '%3s %3d %20.8f\n'%(symbols[idx],1,atom.get_distance(0,idx))
  13.         elif idx == 2:
  14.             string += '%3s %3d %20.8f %3d %20.8f\n'%(symbols[idx],2,atom.get_distance(1,idx),1,
  15.                                                  std_angle(atom.get_angle(0,1,idx)))
  16.         else:
  17.             string += '%3s %3d %20.8f %3d %20.8f %3d %20.8f\n'%(symbols[idx],idx,atom.get_distance(idx,idx-1),idx-1,
  18.                                                           std_angle(atom.get_angle(idx,idx-1,idx-2)),
  19.                                                           idx-2,std_angle(atom.get_dihedral(idx-3,idx-2,idx-1,idx)))
  20.     return string
  21. S1 = genzmt ('./test.xyz')
  22. fileA = open("gzmt.txt","w")
  23. fileA.write(S1)
  24. fileA.close()
  25. print (S1)
复制代码
转化好的gzmt写入gzmz.txt,命令行终端也有打印。
将gzmt复制到ORCA输入文件inp中,即可用于柔性扫描,一个乙烯双键的柔性扫描例子输入文件如下,测试发现虽然分子坐标用gzmt,但是ORCA在做扫描时还是认为第一个原子的index是0,这个GaussView有些区别,需要注意,在GaussView中第一个原子index是1,Gaussian中柔性扫描 D 2 1 4 6,在ORCA中应写成 D 1 0 3 5。

  1. ! r2SCAN-3c opt noautostart nopop
  2. %maxcore     1000
  3. %pal nprocs   4 end
  4. %geom SCAN
  5.         D 1 0 3 5 = 0.0,180.0,36
  6.         end
  7.      end
  8. * gzmt   0   1
  9.   C
  10.   H   1           1.08666628
  11.   H   2           1.85079251   1          31.61322776
  12.   C   3           2.11025063   2          63.98457221   1           0.00000000
  13.   H   4           1.08666627   3          95.59780044   2        -180.00000000
  14.   H   5           1.85079251   4          31.61322823   3        -180.00000000
  15. *
复制代码


32

帖子

0

威望

317

eV
积分
349

Level 3 能力者

4#
 楼主 Author| 发表于 Post on 2024-10-7 10:46:39 | 只看该作者 Only view this author
sobereva 发表于 2024-10-7 02:25
帖子标题里ORCA没拼对

ORCA做柔性扫描并不需要坐标必须写成内坐标的形式,这点和Gaussian是一样的

谢谢社长答疑,学习了,用multiwfn转化确实更简单,之前用的时候没有发现这个zmat2这个功能。 用xyz坐标做柔性扫描报错的可能是坐标本身的问题。

1万

帖子

0

威望

9868

eV
积分
22108

Level 6 (一方通行)

3#
发表于 Post on 2024-10-7 09:22:58 | 只看该作者 Only view this author
只有刚性扫描需要用内坐标,柔性扫描不需要。你的链接虽然是用的内坐标,但是并没有说笛卡尔坐标不能用。
如果你的计算用笛卡尔坐标会报错,建议检查输出文件的报错信息,搞不好是无关的原因导致的报错(SCF不收敛,结构优化不收敛,有的键角接近180度,等等)
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
本团队长期招收研究生,有意者可私信联系

6万

帖子

99

威望

6万

eV
积分
125141

管理员

公社社长

2#
发表于 Post on 2024-10-7 02:25:56 | 只看该作者 Only view this author
帖子标题里ORCA没拼对

ORCA做柔性扫描并不需要坐标必须写成内坐标的形式,这点和Gaussian是一样的
参考北京科音高级量子化学培训班(http://www.keinsci.com/workshop/KAQC_content.html)里ORCA做柔性扫描的例子:


ORCA 6.0.0可以顺利完成。很多网上的ORCA教程都是4.0的,好多东西对于发展迅速的ORCA已经不适用了,我建议不要看了。


xyz转成内坐标用Multiwfn实现太容易了,Multiwfn载入xyz等含有结构信息的文件后,依次输入
gi  //产生Gaussian输入文件
zmat  //用内坐标形式(如果输入zmat2,则每个内坐标都不用变量表示)
Piraeus.gjf  //产生的输入文件名
得到的gjf文件里直接就是内坐标:

%chk=t.chk
#P B3LYP/6-31G*

Generated by Multiwfn

  0  1
C
C     1   B1   
C     1   B2           2   A1   
C     2   B3           1   A2           3   D1
C     4   B4           2   A3           1   D2
C     2   B5           1   A4           3   D3
C     6   B6           2   A5           1   D4

...略
C    44   B59         41   A58         42   D57

B1         1.45305594
B2         1.39050359
B3         1.39050358
B4         1.45305594
B5         1.45305594
B6         1.39050359
B7         1.39050359

...略
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办极高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入北京科音微信公众号获取北京科音培训的最新消息,并避免错过网上有价值的计算化学文章!
欢迎加入人气极高、专业性特别强的理论与计算化学综合交流群思想家公社QQ群(群号见此链接),合计达一万多人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大、极为流行的量子化学波函数分析程序)
Google Scholar:https://scholar.google.com/citations?user=tiKE0qkAAAAJ
ResearchGate:https://www.researchgate.net/profile/Tian_Lu

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

GMT+8, 2026-2-22 06:21 , Processed in 0.168864 second(s), 24 queries , Gzip On.

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