计算化学公社

 找回密码 Forget password
 注册 Register
Views: 5355|回复 Reply: 6

[算法与编程] 如何把cartesian下的gradient&hessian转换成基于internal coordinates的?

[复制链接 Copy URL]

221

帖子

0

威望

2403

eV
积分
2624

Level 5 (御坂)

发表于 Post on 2019-11-2 18:40:04 | 显示全部楼层 Show all |阅读模式 Reading model
最近再写一个优化结构的脚本,利用高斯产生的gradient和hessian。由于想把转动和平移的成分去掉,所以就想把基于Cartesian的gradient和hessian转成基于内坐标的。

放狗搜索一通后发现在高斯官网有个PDF专门讲振动分析的,其中里面提到一个转换矩阵D,是这么说的:
无标题.png

看了半天还是很糊涂,这个D是怎么来的?和上面D1 D2 …… D5 D6 向量有什么关系也不是很清楚

就算得到的这个D矩阵,那么怎么把基于Cartesian的gradient转成基于内坐标的呢?谢谢
PDF见附件

vib.pdf (229.19 KB, 下载次数 Times of downloads: 24)

268

帖子

3

威望

4329

eV
积分
4657

Level 6 (一方通行)

发表于 Post on 2019-11-2 20:02:09 | 显示全部楼层 Show all
你直接读高斯的内坐标的不就得了。

23

帖子

1

威望

521

eV
积分
564

Level 4 (黑子)

发表于 Post on 2019-11-3 02:30:08 | 显示全部楼层 Show all
        D矩阵前三列是平动向量,后三列是转动向量。用这六个向量组成一个3N行6列的矩阵(N是分子中原子个数),就是分子的平动转动空间。
        这时候检查一下每一列的内积,如果为零则是线性分子。把那一列剔除掉,就是对于线性分子的3N行5列矩阵。
        平动转动空间的互补空间,就是投影掉平转动之后的振动空间。求互补空间的方法是Schmidt正交化。白皮书后面用的D矩阵,就是这个去掉了平转动空间的互补空间。

        这个白皮书,介绍了用D矩阵,把笛卡尔坐标Hessian矩阵转换为标准取向下内坐标Hessian矩阵的做法。但是,并没有介绍转换为特定内坐标下梯度和Hessian矩阵的方法。白皮书这部分我写过代码(c#代码,供参考。),见附件。

GaussianHVA.cs

32.32 KB, 下载次数 Times of downloads: 18

高斯的振动分析

评分 Rate

参与人数
Participants 2
eV +10 收起 理由
Reason
一颗赛艇 + 5 谢谢老师指点!现在明白不少,我再研究研究
sobereva + 5

查看全部评分 View all ratings

221

帖子

0

威望

2403

eV
积分
2624

Level 5 (御坂)

 楼主 Author| 发表于 Post on 2019-11-4 16:37:20 | 显示全部楼层 Show all
Warm_Cloud 发表于 2019-11-2 20:02
你直接读高斯的内坐标的不就得了。

目前还是先从fchk里面读应急一下

101

帖子

0

威望

2071

eV
积分
2172

Level 5 (御坂)

发表于 Post on 2022-5-9 16:55:23 | 显示全部楼层 Show all
bnulk 发表于 2019-11-3 02:30
D矩阵前三列是平动向量,后三列是转动向量。用这六个向量组成一个3N行6列的矩阵(N是分子中原子个 ...

您好,请问里面的 Matrix.tred2 和 Matrix.tqli分别是啥意思呢?

23

帖子

1

威望

521

eV
积分
564

Level 4 (黑子)

发表于 Post on 2022-6-17 21:28:39 | 显示全部楼层 Show all
Markmahao 发表于 2022-5-9 16:55
您好,请问里面的 Matrix.tred2 和 Matrix.tqli分别是啥意思呢?

            * tred2(Matrix a, Vector d, Vector e)  实对称矩阵A[n,n]的Householder约化,和tqli结合是当前计算实对称矩阵特征值和特征向量最有效的方法。
              输入:a为待处理的实对称矩阵。d,e为空。
              输出:a被产生变换的正交矩阵Q取代。d返回三对角矩阵的对角元素,e返回非对角元素,且e[0]=0。
            * tqli(ref Vector d, ref Vector e, ref Matrix z) 计算特征值和特征向量。
              输入:实对称矩阵,事先由tred2约化后得到的三对角矩阵和正交矩阵Q。d是对角元素,e是次对角元素,e[0]取任意值。z是tred2中的a矩阵。
              输出:d是特征值,e被破坏,z每一列是特征向量。输出z的第k列是与d[k]相对应的规范特征向量。
              另:如果输入z是单位矩阵的话,则输出为三对角矩阵的特征向量。输出z的第k列是与d[k]相对应的规范特征向量。

Matrix_0_HouseholdAndQL.cs

11.45 KB, 下载次数 Times of downloads: 3

101

帖子

0

威望

2071

eV
积分
2172

Level 5 (御坂)

发表于 Post on 2022-6-17 22:54:14 | 显示全部楼层 Show all
bnulk 发表于 2022-6-17 21:28
* tred2(Matrix a, Vector d, Vector e)  实对称矩阵A[n,n]的Householder约化,和tqli结合是 ...

非常感谢!我研究一下。

本版积分规则 Credits rule

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

GMT+8, 2023-2-2 23:50 , Processed in 0.213697 second(s), 25 queries .

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