计算化学公社
标题:
Hess2freq源码中读入Hessian矩阵如何理解
[打印本页]
作者Author:
lucky1999
时间:
2024-7-13 21:14
标题:
Hess2freq源码中读入Hessian矩阵如何理解
各位老师,我是一个量化的新手,目前想通过
http://sobereva.com/328
中sob写的Hess2freq搞清楚振动频率是如何通过Hessian矩阵计算得到的。目前,我对以下的代码段有一些疑问。
!Load Hessian matrix
allocate(Hess(nmodeall,nmodeall))
Hess=0
call loclabel(10,"Cartesian Force Constants")
read(10,*)
read(10,"(5(1PE16.8))") ((Hess(i,j),j=1,i),i=1,nmodeall)
Hess=Hess+transpose(Hess)
do i=1,nmodeall
Hess(i,i)=Hess(i,i)/2D0
end do
close(10)
! call showmatgau(Hess,"Hessian matrix",1)
复制代码
我的理解,该段代码应该是从Cartesian Force Constants字段下提取值放到Hess这个二维数组中,Hess这个二维数组中应该放入nmodeall*nmodeall个元素,但是我看过Hess2freq程序文件夹下的examples中两个例子的fch文件中Cartesian Force Constants下的值的个数不是nmodeall*nmodeall个(我认为Hessian矩阵应该是有nmodeall*nmodeall个值),请问各位老师我是哪儿理解错了吗?谢谢各位老师。附件中为两个例子的fch文件。
作者Author:
sobereva
时间:
2024-7-13 21:28
Hessian矩阵是对称矩阵,fch只记录了其三角部分,hess2freq直接读的也是按三角矩阵读的,然后再产生完整的Hessian矩阵
作者Author:
lucky1999
时间:
2024-7-13 21:37
sobereva 发表于 2024-7-13 21:28
Hessian矩阵是对称矩阵,fch只记录了其三角部分,hess2freq直接读的也是按三角矩阵读的,然后再产生完整的H ...
谢谢sob老师的解答,懂啦!
欢迎光临 计算化学公社 (http://bbs.keinsci.com/)
Powered by Discuz! X3.3