计算化学公社

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

[Molcas] 让 openMolcas 输出真正的 Hessian 矩阵

[复制链接 Copy URL]

135

帖子

1

威望

4134

eV
积分
4289

Level 6 (一方通行)

跳转到指定楼层 Go to specific reply
楼主
# 1 - 背景

最近在用多参考方法,尝试了一众量化软件,先后放弃了 Gaussian、Molpro。听闻 Molcas 是业界多参考的标杆,尝试用开源版 openMolcas 做多参考。

由于下一步的工作需要精确 Hessian,在输入文件中加入了
  1. &MCKINLEY
  2. perturbation
  3. hessian
  4. showhessian
复制代码
它的确让程序打印出了许多的 3N*3N 矩阵,可是这些矩阵都与其它量化程序对不上。

openMolcas 做多参考很快,特别是相比 Molpro 惨不忍睹的并行效率。几天后,我又将目光转向了 openMolcas。



# 2 - 解决

经对比,发现其输出的频率、本征向量竟然跟 Gaussian 一模一样(精确到 0.1 厘米波数)。这令人心生激动!如果频率正确,那么 Hessian 矩阵一定也正确。怎么找到正确的 Hessian 矩阵呢?

翻看了 openMolcas 的源码,大致了解了 Hessian 的计算流程。的确如同手册所说,用了某种微扰方法,在微扰之后才有了正确的 Hessian 矩阵,可惜没有关键词可以输出它。

根据输出文件中的文本,定位到了正确的 Hessian 矩阵第一次出现在 src/mclr/output_mclr.f ~530 行,因此只要在调用 FreqAnal 之前输出 Hessian 矩阵即可。
  1. write(6,*) 'Real Hessian by wb'
  2. write(6,'(3E18.10)') Hess
复制代码



与您分享。

评分 Rate

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

查看全部评分 View all ratings

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

370

帖子

7

威望

3491

eV
积分
4001

Level 6 (一方通行)

2#
发表于 Post on 2023-2-20 01:33:09 | 只看该作者 Only view this author
用vitables打开频率任务正常结束的输出文件***.slapaf.h5,里面有HESSIAN标签页,格式是https://gaussian.com/external/的FILE FORMATS最后一段所描述的那样。
也可以用python批量读取:
  1. import h5py
  2. import numpy as np
  3. h5=h5py.File('***.slapaf.h5','r')
  4. np.savetxt('hessian.txt',h5['HESSIAN'][:])
  5. h5.close()
复制代码

本版积分规则 Credits rule

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

GMT+8, 2026-2-19 02:58 , Processed in 0.246619 second(s), 21 queries , Gzip On.

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