计算化学公社

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

[算法与编程] 如何将笛卡尔坐标下的矢量转换到内坐标下

[复制链接 Copy URL]

178

帖子

3

威望

1922

eV
积分
2160

Level 5 (御坂)

本帖最后由 Kalinite 于 2022-6-17 22:25 编辑

如题。最近有一些笛卡尔坐标系下的矢量数据,想放到内坐标下进行讨论。用梯度举个例子,我的想法是可以写成下面这样:

其中xk(包括yk和zk)是k个原子的笛卡尔坐标,L是k-1个键长,theta是k-2个键角,phi是k-3个二面角。*
由于笛卡尔坐标可以用几何关系直接算内坐标,所以可以用Tensorflow很方便地求出内坐标对笛卡尔坐标的导数,然后求解线性方程组即可得到内坐标上的梯度。但是问题在于,上述方程一共有3N个,而未知数(即E对内坐标的偏导数)只有3N-6个。这里不知应当如何处理才比较有化学意义,请大佬们不吝赐教。

*这里还涉及到怎么给出一套内坐标,为了方便我是直接对序号相邻的两个原子定义一个键长,相邻三个定义键角,相邻四个定义二面角,所以分别是k-1、k-2和k-3个。

6万

帖子

99

威望

6万

eV
积分
125245

管理员

公社社长

2#
发表于 Post on 2022-6-17 23:35:31 | 只看该作者 Only view this author
利用Wilson B矩阵进行变换,细节看J. Chem. Phys., 117, 9160 (2002)
北京科音自然科学研究中心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

178

帖子

3

威望

1922

eV
积分
2160

Level 5 (御坂)

3#
 楼主 Author| 发表于 Post on 2022-6-18 00:16:14 | 只看该作者 Only view this author
sobereva 发表于 2022-6-17 23:35
利用Wilson B矩阵进行变换,细节看J. Chem. Phys., 117, 9160 (2002)

谢谢sob老师,我确实试过用Wilson B矩阵转到了RIC下,但是他还比内坐标多了6/5个自由度,莫非可以直接删去吗。

6万

帖子

99

威望

6万

eV
积分
125245

管理员

公社社长

4#
发表于 Post on 2022-6-18 00:52:57 | 只看该作者 Only view this author
Kalinite 发表于 2022-6-18 00:16
谢谢sob老师,我确实试过用Wilson B矩阵转到了RIC下,但是他还比内坐标多了6/5个自由度,莫非可以直接删 ...

让RIC的定义等同于内坐标就完了。RIC的数目可以大于也可以等于内坐标数目。
北京科音自然科学研究中心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

178

帖子

3

威望

1922

eV
积分
2160

Level 5 (御坂)

5#
 楼主 Author| 发表于 Post on 2022-6-18 01:12:17 | 只看该作者 Only view this author
sobereva 发表于 2022-6-18 00:52
让RIC的定义等同于内坐标就完了。RIC的数目可以大于也可以等于内坐标数目。

明白了,感谢您!

60

帖子

0

威望

576

eV
积分
636

Level 4 (黑子)

6#
发表于 Post on 2022-8-29 16:11:08 | 只看该作者 Only view this author
请教:这样定义的内坐标能转化回去或如何可视化这个分子呢?

178

帖子

3

威望

1922

eV
积分
2160

Level 5 (御坂)

7#
 楼主 Author| 发表于 Post on 2022-8-29 16:29:25 | 只看该作者 Only view this author
libo371324 发表于 2022-8-29 16:11
请教:这样定义的内坐标能转化回去或如何可视化这个分子呢?

修改一下格式使之符合Gaussian输入文件的格式,用GaussView就能看。
要转化回去也还用B矩阵即可。

60

帖子

0

威望

576

eV
积分
636

Level 4 (黑子)

8#
发表于 Post on 2022-8-29 18:46:41 | 只看该作者 Only view this author
Kalinite 发表于 2022-8-29 16:29
修改一下格式使之符合Gaussian输入文件的格式,用GaussView就能看。
要转化回去也还用B矩阵即可。

好的,谢谢!

60

帖子

0

威望

576

eV
积分
636

Level 4 (黑子)

9#
发表于 Post on 2022-8-31 20:21:12 | 只看该作者 Only view this author
Kalinite 发表于 2022-8-29 16:29
修改一下格式使之符合Gaussian输入文件的格式,用GaussView就能看。
要转化回去也还用B矩阵即可。

文章看了,没看懂,但我还有两个疑问
1、按照序号相邻原子这样定义内坐标(不用B矩阵变换),能保证旋转平移不变性吗
2、文章中δS=B*δX,内坐标的变化等于Wison B矩阵*笛卡尔坐标的变化,同样笛卡尔坐标的变化等于
Wison B(逆)矩阵*内坐标:δX = B(逆)*δS,如果是深度学习模型给出的内坐标,我还能用相同的Wison B矩阵将模型给出的内坐标转成笛卡尔坐标吗

178

帖子

3

威望

1922

eV
积分
2160

Level 5 (御坂)

10#
 楼主 Author| 发表于 Post on 2022-8-31 22:20:54 | 只看该作者 Only view this author
本帖最后由 Kalinite 于 2022-8-31 22:31 编辑
libo371324 发表于 2022-8-31 20:21
文章看了,没看懂,但我还有两个疑问
1、按照序号相邻原子这样定义内坐标(不用B矩阵变换),能保证旋转 ...

1. 可以
2. “深度学习模型给出的内坐标”指的是什么?Wilson’s B matrix依赖于具体的结构,相当于是笛卡尔空间到内坐标空间映射的一个Jacobi matrix,则只有给定了具体坐标定义方式,才能给出一个确定的Wilson's B matrix。至于你说的有了内坐标要给出笛卡尔坐标,给几个冗余变量人工赋值即可。(比如让1号原子在(0,0,0),2号原子在(0,0,z2),3号原子在(0,y3,z3),于是整个结构在空间中的取向就被固定了,自然就能得到全部原子的笛卡尔坐标)

当然内坐标的定义方式可以有很多种,这种定义方式也没有什么特殊意义,在没有负面影响的情况下,纯粹是为了写代码方便些。如果要有化学意义的话,可能就得尽量让原子间距离尽可能多对应实际的化学键等等,这个感觉还是比较麻烦的,在我个人做的一些问题里面没有这个需求,做优化的可能会关心这些问题。

60

帖子

0

威望

576

eV
积分
636

Level 4 (黑子)

11#
发表于 Post on 2022-9-1 08:37:36 | 只看该作者 Only view this author
Kalinite 发表于 2022-8-31 22:20
1. 可以
2. “深度学习模型给出的内坐标”指的是什么?Wilson’s B matrix依赖于具体的结构,相当于是笛 ...

好的,非常感谢!

60

帖子

0

威望

576

eV
积分
636

Level 4 (黑子)

12#
发表于 Post on 2022-9-8 10:09:33 | 只看该作者 Only view this author
Kalinite 发表于 2022-8-31 22:20
1. 可以
2. “深度学习模型给出的内坐标”指的是什么?Wilson’s B matrix依赖于具体的结构,相当于是笛 ...

为了更有化学意义,用Multiwfn得到了以化学键对应的原子间距离,然后根据连键关系在将内坐标转化回笛卡尔坐标时,仍然遇到了疑问,比如甲烷,前三个原子的位置定义如下:C(0.0,0.0,0.0),H(0.0,0.0,z2),H(x3,0.0,z3),整个结构的取向确定,那么在求第四个氢原子的位置时需要考虑键角吗?如果考虑键角的话那就很麻烦了吧,如果不考虑,最后两个氢原子的位置很有可能重叠。

178

帖子

3

威望

1922

eV
积分
2160

Level 5 (御坂)

13#
 楼主 Author| 发表于 Post on 2022-9-8 11:09:17 | 只看该作者 Only view this author
libo371324 发表于 2022-9-8 10:09
为了更有化学意义,用Multiwfn得到了以化学键对应的原子间距离,然后根据连键关系在将内坐标转化回笛卡尔 ...

需要一个二面角吧,不然没法确定位置

60

帖子

0

威望

576

eV
积分
636

Level 4 (黑子)

14#
发表于 Post on 2022-9-8 14:05:23 | 只看该作者 Only view this author
Kalinite 发表于 2022-9-8 11:09
需要一个二面角吧,不然没法确定位置

嗯,这样就很麻烦了,要是高斯软件能像Multiwfn那样程序调动就好啦,我慢慢尝试写一下吧

本版积分规则 Credits rule

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

GMT+8, 2026-2-28 19:01 , Processed in 0.205062 second(s), 23 queries , Gzip On.

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