计算化学公社

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

[算法与编程] 基于fch中的Hessian矩阵计算振动频率的简单程序Hess2freq

[复制链接 Copy URL]

5万

帖子

99

威望

5万

eV
积分
112356

管理员

公社社长

跳转到指定楼层 Go to specific reply
楼主
基于fch中的Hessian矩阵计算振动频率的简单程序Hess2freq
Hess2freq: A simple program to calculate vibrational frequencies based on Hessian matrix in fch

文/Sobereva @北京科音  2016-May-27


写了个教学目的的程序Hess2freq,可以读取fch中的Hessian矩阵来计算谐振频率和正则坐标。给了非常易读的源代码,而且文档里把用到的公式和原理都详细介绍了,对想了解振动分析原理和细节的人应该会很有益。

下载地址: http://sobereva.com/soft/Hess2freq.rar


输出例子:
Hess2freq: Load Hessian from .fch file and then compute harmonic frequencies
Programmed by Sobereva (Sobereva@sina.com)
Release date: 2016-May-27

The number of atoms:     4
The number of vibrational modes:     6
Atomic masses:
   12.000000    1.007825    1.007825   15.994915

************ Force constant matrix (i.e mass-weighted Hessian) ************
             1             2             3             4             5      
     1  0.918452D-01  0.427913D-01  0.170607D-05  0.235189D-01 -0.105091D-02
     2  0.427913D-01  0.504781D-02 -0.520948D-05 -0.159298D-01 -0.181706D-01
     3  0.170607D-05 -0.520948D-05  0.534475D-02 -0.499779D-05 -0.157484D-05
     4  0.235189D-01 -0.159298D-01 -0.499779D-05  0.332464D-02 -0.708577D-02
     5 -0.105091D-02 -0.181706D-01 -0.157484D-05 -0.708577D-02  0.510611D-01
     6 -0.192394D-04  0.167567D-04  0.216766D-02  0.189037D-04 -0.886049D-06
     7 -0.852345D-01 -0.332194D-01  0.279538D-04 -0.285394D-01 -0.259396D-02
     8 -0.478064D-01  0.343795D-01  0.187013D-04  0.414582D-01 -0.178675D-01
     9  0.506723D-04  0.711252D-05 -0.114972D-01 -0.112089D-05  0.343570D-05
    10 -0.640613D-01 -0.247270D-01 -0.724008D-05 -0.140419D-01  0.334003D-02
    11 -0.248003D-01 -0.844094D-02  0.213252D-06  0.516973D-02  0.740654D-02
    12 -0.936792D-05 -0.147931D-05 -0.228756D-02 -0.134884D-06  0.724064D-06
             6             7             8             9            10      
     1 -0.192394D-04 -0.852345D-01 -0.478064D-01  0.506723D-04 -0.640613D-01
     2  0.167567D-04 -0.332194D-01  0.343795D-01  0.711252D-05 -0.247270D-01
     3  0.216766D-02  0.279538D-04  0.187013D-04 -0.114972D-01 -0.724008D-05
     4  0.189037D-04 -0.285394D-01  0.414582D-01 -0.112089D-05 -0.140419D-01
     5 -0.886049D-06 -0.259396D-02 -0.178675D-01  0.343570D-05  0.334003D-02
     6  0.865363D-03  0.273490D-04 -0.423721D-04 -0.466045D-02  0.505424D-05
     7  0.273490D-04  0.336434D+00  0.848079D-01 -0.147836D-03 -0.345946D-02
     8 -0.423721D-04  0.848079D-01 -0.715275D-01 -0.133212D-04  0.971329D-02
     9 -0.466045D-02 -0.147836D-03 -0.133212D-04  0.247107D-01 -0.649994D-05
    10  0.505424D-05 -0.345946D-02  0.971329D-02 -0.649994D-05  0.598807D-01
    11 -0.365557D-05  0.813642D-02 -0.733868D-02 -0.367918D-05  0.181410D-01
    12 -0.924923D-03  0.603159D-05 -0.221842D-05  0.492551D-02  0.663398D-05
            11            12      
     1 -0.248003D-01 -0.936792D-05
     2 -0.844094D-02 -0.147931D-05
     3  0.213252D-06 -0.228756D-02
     4  0.516973D-02 -0.134884D-06
     5  0.740654D-02  0.724064D-06
     6 -0.365557D-05 -0.924923D-03
     7  0.813642D-02  0.603159D-05
     8 -0.733868D-02 -0.221842D-05
     9 -0.367918D-05  0.492551D-02
    10  0.181410D-01  0.663398D-05
    11  0.729420D-02  0.165643D-05
    12  0.165643D-05  0.977187D-03
Diagonalization passed

************ Normal coordinates (columns) ************
             1             2             3             4             5      
     1    0.0666        0.0130        0.0000        0.0513        0.4179   
     2   -0.1089        0.1194       -0.0000       -0.0833        0.1751   
     3   -0.0000        0.0001        0.1312       -0.0000        0.0001   
     4   -0.3936       -0.9639        0.0004       -0.1564        0.1945   
     5    0.0303       -0.0534        0.0001        0.9406       -0.2801   
     6    0.0004        0.0001        0.1834        0.0000       -0.0000   
     7   -0.1713        0.0346       -0.0005        0.0914        0.7221   
     8    0.8931       -0.2116       -0.0001       -0.2670        0.0714   
     9   -0.0001       -0.0004       -0.9730        0.0000       -0.0002   
    10   -0.0144        0.0488       -0.0000       -0.0344       -0.3713   
    11    0.0235       -0.0729        0.0000        0.0200       -0.1182   
    12    0.0000       -0.0000       -0.0487       -0.0000       -0.0000   
             6      
     1   -0.1015   
     2   -0.0311   
     3    0.0000   
     4   -0.0689   
     5   -0.0080   
     6    0.0001   
     7    0.9710   
     8    0.2015   
     9   -0.0005   
    10    0.0193   
    11    0.0111   
    12    0.0000   

The frequencies (cm-1) corresponding to overall translation and rotation:
    -0.00997     0.01937    -0.05532   -12.87321   -15.76915   -19.42877
Harmonic vibrational frequencies:
Mode    1:   -0.56590E+14 Hz    -1887.64948 cm-1
Mode    2:    0.23453E+14 Hz      782.31259 cm-1
Mode    3:    0.27533E+14 Hz      918.38630 cm-1
Mode    4:    0.38543E+14 Hz     1285.65606 cm-1
Mode    5:    0.58055E+14 Hz     1936.50274 cm-1
Mode    6:    0.96313E+14 Hz     3212.64652 cm-1

评分 Rate

参与人数
Participants 9
eV +44 收起 理由
Reason
arsc + 4 好物!
KiritsuguPapa + 5 赞!
卡开发发 + 5 好物!
chrischen1128 + 5 谢谢
jliang + 5 谢谢
brothers + 5 好物!
captain + 5 好物!
zhanfei + 5 好物!
ruanyang + 5 好物!

查看全部评分 View all ratings

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

89

帖子

0

威望

1711

eV
积分
1800

Level 5 (御坂)

25#
发表于 Post on 2022-6-10 11:49:59 | 只看该作者 Only view this author
王二葛 发表于 2022-6-10 11:41
推荐 ajz34 的讲解和代码

另推荐他写的 python 实现双杂化泛函梯度教程,其中的量化入门部分很友好

谢谢

104

帖子

1

威望

3519

eV
积分
3643

Level 5 (御坂)

24#
发表于 Post on 2022-6-10 11:41:15 | 只看该作者 Only view this author
推荐 ajz34 的讲解和代码
  1. 频率分析 (1):从 fchk 文件得到分子频率与简正模式
  2. https://ajz34.readthedocs.io/zh_CN/latest/QC_Notes/Freq_Series/freq_1.html
复制代码

另推荐他写的 python 实现双杂化泛函梯度教程,其中的量化入门部分很友好
  1. xDH 在 Python 下实现的简易教程
  2. https://py-xdh.readthedocs.io/
复制代码

评分 Rate

参与人数
Participants 1
eV +3 收起 理由
Reason
风起~ + 3 好物!

查看全部评分 View all ratings

十八介姑娘一蕾花呀,白白介牙齿、红红介嘴唇,得人惜

170

帖子

2

威望

1734

eV
积分
1944

Level 5 (御坂)

23#
发表于 Post on 2022-6-9 13:27:26 | 只看该作者 Only view this author
感谢大家的帮助!

187

帖子

1

威望

1247

eV
积分
1454

Level 4 (黑子)

22#
发表于 Post on 2022-6-9 08:24:13 | 只看该作者 Only view this author
Gaussian官方文档Vibrational Analysis in Gaussian

Vibrational.pdf

149.04 KB, 下载次数 Times of downloads: 17

评分 Rate

参与人数
Participants 1
eV +5 收起 理由
Reason
snljty2 + 5 谢谢

查看全部评分 View all ratings

计算小白 水平很菜
随时可喷 万望指点

5万

帖子

99

威望

5万

eV
积分
112356

管理员

公社社长

21#
 楼主 Author| 发表于 Post on 2022-6-9 07:38:06 | 只看该作者 Only view this author
Kalinite 发表于 2022-6-8 20:49
请问您有关于“推导出平动和转动模式的解析形式”这方面的资料吗

Gaussian有个官方文档Vibrational Analysis in Gaussian,里面有细节
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入“北京科音”微信公众号获取北京科音培训的最新消息、避免错过网上有价值的计算化学文章!
欢迎加入人气非常高、专业性特别强的综合性理论与计算化学交流QQ群“思想家公社QQ群”:1号:18616395,2号:466017436,3号:764390338,搜索群号能搜到哪个说明目前哪个能加,合计9000人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大的量子化学波函数分析程序)
ResearchGate:https://www.researchgate.net/profile/Tian_Lu
Money and papers are rubbish, get a real life!

1万

帖子

0

威望

7396

eV
积分
18149

Level 6 (一方通行)

20#
发表于 Post on 2022-6-8 20:56:16 | 只看该作者 Only view this author
Kalinite 发表于 2022-6-8 13:49
请问您有关于“推导出平动和转动模式的解析形式”这方面的资料吗

没有,这个就是经典力学的内容,找一本力学教材看看刚体平动和转动的简正模怎么算就知道了
BDF(https://bdf-manual.readthedocs.io/zh_CN/latest/Introduction.html)、ORCA(https://orcaforum.kofo.mpg.de/index.php)开发团队成员

170

帖子

2

威望

1734

eV
积分
1944

Level 5 (御坂)

19#
发表于 Post on 2022-6-8 20:49:54 | 只看该作者 Only view this author
wzkchem5 发表于 2022-6-8 18:08
我不知道sob老师的做法是什么,但是一般量化程序的做法并不是对角化以后去掉最小的6个频率,而是先推导出 ...

请问您有关于“推导出平动和转动模式的解析形式”这方面的资料吗

1万

帖子

0

威望

7396

eV
积分
18149

Level 6 (一方通行)

18#
发表于 Post on 2022-6-8 18:08:30 | 只看该作者 Only view this author
Kalinite 发表于 2022-6-8 09:57
sob老师您好!
说明文档中提到:“Gaussian输出最终的振动频率前,会先从3N个频率中自动判断出整体平动和 ...

我不知道sob老师的做法是什么,但是一般量化程序的做法并不是对角化以后去掉最小的6个频率,而是先推导出平动和转动模式的解析形式,再把这些模式从Hessian里投影掉,然后对角化剩下的3N-6维的Hessian。这样的好处是假如有振动频率极其小的振动模式,不至于误把这个振动扔掉。
BDF(https://bdf-manual.readthedocs.io/zh_CN/latest/Introduction.html)、ORCA(https://orcaforum.kofo.mpg.de/index.php)开发团队成员

170

帖子

2

威望

1734

eV
积分
1944

Level 5 (御坂)

17#
发表于 Post on 2022-6-8 16:57:28 | 只看该作者 Only view this author
sob老师您好!
说明文档中提到:“Gaussian输出最终的振动频率前,会先从3N个频率中自动判断出整体平动和转动模式来,然后将它们对力常数矩阵的贡献投影掉使得振动频率更精确。”这里是如何判断整体平动转动模式的呢,是否也是和这个程序中一样去掉最小的六个。另外这里的投影可以给一下具体的数学表达吗?最近在做一些工作,想把一些笛卡尔坐标系下的矢量转换到内坐标下,对如何删除平动转动自由度感到很是困惑。

195

帖子

0

威望

4029

eV
积分
4224

Level 6 (一方通行)

16#
发表于 Post on 2021-7-25 10:23:50 | 只看该作者 Only view this author
wzkchem5 发表于 2021-7-24 21:50
normal coordinates只有方向是有物理意义的,把整个normal coordinate矢量取负号,不改变任何物理可观测 ...

明白了,谢谢

1万

帖子

0

威望

7396

eV
积分
18149

Level 6 (一方通行)

15#
发表于 Post on 2021-7-24 21:50:35 | 只看该作者 Only view this author
tiandikuoyuan 发表于 2021-7-24 14:37
老师,请问软件输出的Normal coordinates与Gaussian 输出文件中的normal coordinates是否是完全一致的呀, ...

normal coordinates只有方向是有物理意义的,把整个normal coordinate矢量取负号,不改变任何物理可观测量。即使都是高斯做的计算,你把结构稍微扰动一下再做opt+freq,normal coordinate符号也会有变化。
BDF(https://bdf-manual.readthedocs.io/zh_CN/latest/Introduction.html)、ORCA(https://orcaforum.kofo.mpg.de/index.php)开发团队成员

195

帖子

0

威望

4029

eV
积分
4224

Level 6 (一方通行)

14#
发表于 Post on 2021-7-24 21:37:34 | 只看该作者 Only view this author
老师,请问软件输出的Normal coordinates与Gaussian 输出文件中的normal coordinates是否是完全一致的呀,我发现部分数据正负相反,有些数据一致;比如说示例文件ethanol.out中                     19                     20                     21
                      A                      A                      A
Frequencies --   3276.7816              3289.0510              4114.6169
Red. masses --      1.1023                 1.1047                 1.0669
Frc consts  --      6.9734                 7.0412                10.6423
IR Inten    --     48.8354                53.7301                41.2114
Raman Activ --     63.3543                47.1572                95.0383
Depolar (P) --      0.7457                 0.7500                 0.3130
Depolar (U) --      0.8544                 0.8571                 0.4767
  Atom  AN      X      Y      Z        X      Y      Z        X      Y      Z
     1   6    -0.06  -0.07   0.00     0.00   0.00   0.09     0.00   0.00   0.00
     2   1     0.01   0.26  -0.39     0.03   0.41  -0.56     0.00   0.00   0.00
     3   1     0.64   0.36   0.00     0.00   0.00   0.01     0.00   0.00   0.00
     4   1     0.01   0.26   0.39    -0.03  -0.41  -0.56     0.00   0.00   0.00
     5   6     0.00  -0.01   0.00     0.00   0.00   0.02     0.00   0.00   0.00
     6   1     0.00   0.03  -0.04     0.00   0.06  -0.09     0.00   0.00   0.00
     7   1     0.00   0.03   0.04     0.00  -0.06  -0.09     0.00   0.00   0.00
     8   8     0.00   0.00   0.00     0.00   0.00   0.00     0.05  -0.04   0.00
     9   1     0.00   0.00   0.00     0.00   0.00   0.00    -0.79   0.61   0.00


Hess2freq软件输出的数据如下:
         19            20          21
1    -0.0553       -0.0000      0.0000
2    -0.0742       -0.0000     -0.0003
3     0.0000       -0.0926     -0.0000
4     0.0100       -0.0300      0.0003
5     0.2638       -0.4114     -0.0002
6    -0.3889        0.5599      0.0002
7     0.6428        0.0000      0.0012
8     0.3618        0.0000      0.0011
9     0.0000       -0.0144     -0.0000
10     0.0100        0.0300      0.0003
11     0.2638        0.4114     -0.0002
12     0.3889        0.5599     -0.0002
13    -0.0011       -0.0000      0.0005
14    -0.0061       -0.0000      0.0019
15     0.0000       -0.0156      0.0000
16     0.0012       -0.0002      0.0026
17     0.0307       -0.0635      0.0004
18    -0.0420        0.0883      0.0007
19     0.0012        0.0002      0.0026
20     0.0307        0.0635      0.0004
21     0.0420        0.0883     -0.0007
22     0.0004        0.0000     -0.0506
23     0.0003       -0.0000      0.0371
24    -0.0000        0.0003     -0.0000
25    -0.0001       -0.0000      0.7910
26     0.0013        0.0000     -0.6086
27     0.0000        0.0006      0.0000


我想通过这个软件将fchk文件转换成orca可识别的hess文件,发现三个文件中Normal coordinates都不完全一致,请问下是哪里存在问题吗?
Gaussian 水的数据:
                      1                      2                      3
                     A1                     A1                     B2
Frequencies --   1616.6354              3787.5994              3892.8460
Red. masses --      1.0838                 1.0441                 1.0826
Frc consts  --      1.6689                 8.8250                 9.6661
IR Inten    --     80.7528                 4.4711                44.1094
  Atom  AN      X      Y      Z        X      Y      Z        X      Y      Z
     1   8    -0.00  -0.00  -0.07     0.00   0.00   0.05    -0.00  -0.07   0.00
     2   1     0.00   0.42   0.57     0.00   0.59  -0.39     0.00   0.56  -0.43
     3   1     0.00  -0.42   0.57    -0.00  -0.59  -0.39     0.00   0.56   0.43


Hess2freq软件输出的数据如下:
************ Normal coordinates (columns) ************
             1             2             3
     1   -0.0000       -0.0000        0.0000
     2    0.0000       -0.0000       -0.0706
     3   -0.0712       -0.0492        0.0000
     4   -0.0000       -0.0000       -0.0000
     5    0.4220       -0.5886        0.5605
     6    0.5651        0.3903       -0.4282
     7    0.0000        0.0000       -0.0000
     8   -0.4220        0.5886        0.5605
     9    0.5651        0.3903        0.4282

orca 计算得到的out文件:
------------
NORMAL MODES
------------
These modes are the Cartesian displacements weighted by the diagonal matrix
M(i,i)=1/sqrt(m[i]) where m[i] is the mass of the displaced atom
Thus, these vectors are normalized but *not* orthogonal
                  6          7          8   
      0       0.000000   0.000000   0.000000
      1       0.000000   0.000000  -0.070639
      2       0.071235   0.049153   0.000000
      3       0.000000   0.000000   0.000000
      4      -0.421752   0.588752   0.560593
      5      -0.565321  -0.390079  -0.428068
      6       0.000000   0.000000   0.000000
      7       0.421752  -0.588754   0.560591
      8      -0.565321  -0.390080   0.428067

5万

帖子

99

威望

5万

eV
积分
112356

管理员

公社社长

13#
 楼主 Author| 发表于 Post on 2018-4-21 07:57:58 | 只看该作者 Only view this author
让你变成回忆 发表于 2018-4-20 20:53
sob老师您好,再次请教您编程问题:
在您的程序中用到了showmatgau这个子程序。为什么不单独列成子程序 ...


只是为了当前这个小程序方便才这样写。

showmatgau本是Multiwfn程序里的子程序,是独立的。
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入“北京科音”微信公众号获取北京科音培训的最新消息、避免错过网上有价值的计算化学文章!
欢迎加入人气非常高、专业性特别强的综合性理论与计算化学交流QQ群“思想家公社QQ群”:1号:18616395,2号:466017436,3号:764390338,搜索群号能搜到哪个说明目前哪个能加,合计9000人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大的量子化学波函数分析程序)
ResearchGate:https://www.researchgate.net/profile/Tian_Lu
Money and papers are rubbish, get a real life!

490

帖子

2

威望

4877

eV
积分
5407

Level 6 (一方通行)

12#
发表于 Post on 2018-4-20 20:53:11 | 只看该作者 Only view this author
让你变成回忆 发表于 2017-9-11 21:02
对,我就是看您的很多程序中都有这样一样loclabel的子程序,所以想了解清楚点一下具体的过程。

大致懂 ...

sob老师您好,再次请教您编程问题:
在您的程序中用到了showmatgau这个子程序。为什么不单独列成子程序来使用呢?而是在主程序中加入contains 后面接该子程序。
我尝试把这个子程序单独作为模板来使用,因为我觉得这样输出矩阵超级方便。但是我把这部分内容单独写为一个子程序,然后再去调用,就会出现问题,而向您那样放入主程序中,并在之前加入contains,就没有任何问题。
翻阅了一些书籍,没有找到相关的内容。恳求您再次解答。谢谢sob老师。

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

GMT+8, 2024-11-24 17:58 , Processed in 0.194535 second(s), 26 queries , Gzip On.

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