计算化学公社

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

[算法与编程] 编写构造片段组合波函数程序时,遇到的与Gaussian读取fchk相关的问题

[复制链接 Copy URL]

482

帖子

10

威望

6932

eV
积分
7614

Level 6 (一方通行)

BSJ Institute

本帖最后由 Accelerator 于 2022-12-4 14:02 编辑

最近为了解决Gaussian自带的生成片段组合波函数的一些功能上的不足,正在编写一个基于各个片段的fchk构造片段组合波函数的程序。其中片段组合波函数是根据http://sobereva.com/82中提到的方法构造的,即依次读取各片段fchk中Alpha MO coefficients和Beta MO coefficients,构造分块矩阵并用0补足,然后转成新的轨道系数矩阵。结果发现了如下现象:
1. 对于UKS计算,发现在fchk中写入Alpha MO coefficients和Beta MO coefficients后,guess=read时并不足以让Gaussian读出正确的波函数。以附件的frag1.fchk为例,这是经过尝试发现的能让Gaussian正确读取的最简形式。其中ILSW的部分是必不可少的:
  1. Num ILSW                                   I              100
  2. ILSW                                       I   N=         100
  3.            1           0           0           0           2           1
  4.            0           0           0           0        4639          -1
  5.            4           0           0           0           0           0
  6.            0           0           1           0           0           0
  7.            1           1           0           0           0           0
  8.            0           0      100000           0          -1           0
  9.            0           0           0           0           0           0
  10.            0           0           0           1           0           0
  11.            0 -2000000000           1           0           0           0
  12.            0           0         121          52           0           0
  13.            0           0          58           0           0           0
  14.            0           0           0           0           0           1
  15.            0           0           0           0           0           0
  16.            0           0           0           0           0           0
  17.            0           0           0           0           0           0
  18.            0           0           0           0           0           0
  19.            0           0           0           0
复制代码
这个fchk中所记录的波函数是已经收敛的,如果被正确读取,应当识别为<S**2>= 1.1808 S= 0.6962,然后在1圈之后就收敛。但如果没有ILSW部分,则会识别为<S**2>= 0.75,并且迭代到一个不稳定的波函数。
2. 由上可以推断,Gaussian在guess=read时,会进行许多变换(可以容易想象的肯定会进行分子结构和轨道的投影,但既然fchk中的已经是完全相同水平下收敛的轨道,还投影什么?所以肯定有其他机制),并且会导致波函数发生很大变化。如果写guess=copychk而不是guess=read,那么即使没有ILSW部分,也能正确识别,立刻读取到一个已经收敛到的波函数。
但是:上述fchk中记录的轨道是已经收敛好的,那么guess=copychk可以成功。而对于一个从片段构造出来的轨道,例如附件mixed.fchk,就不奏效了。例如附件中的mixed.fchk,如果写guess=read,则可以读取(但会像上述一样读取到一个不稳定的波函数),而写guess=copychk会立刻报错:
  1. Operation on file out of range.
  2. FileIO: IOper= 2 IFilNo(1)=  -528 Len=        4278 IPos=           0 Q=   23237896873400


  3. dumping /fiocom/, unit = 1 NFiles =    56 SizExt =    524288 WInBlk =       512
  4.                    defal = F LstWrd =      659456 FType=2 FMxFil=10000
复制代码
其中提到out of range,但根据我的愚见,系数矩阵的维度是正确的,似乎不应该存在程序想读取某些东西但没有读到的情况。

所以这就带来了几个问题:
1. fchk中的ILSW部分是什么含义?Gaussian手册中似乎对此完全没有解释。
2. guess=read的机制究竟是什么?为何会导致读取到错误的波函数?
3. guess=copychk时报错的成因是什么?

不知是否有人对此有了解,感谢大家。
mixed.fchk (282.09 KB, 下载次数 Times of downloads: 0) frag1.fchk (205.77 KB, 下载次数 Times of downloads: 0) mixed.gjf (2 KB, 下载次数 Times of downloads: 0) frag1.gjf (1.58 KB, 下载次数 Times of downloads: 0)

928

帖子

1

威望

8262

eV
积分
9210

Level 6 (一方通行)

4#
发表于 Post on 2022-12-4 17:00:44 | 只看该作者 Only view this author
本帖最后由 hebrewsnabla 于 2022-12-4 17:05 编辑

MOKIT源码里面也有 https://gitlab.com/jxzou/mokit/-/blob/master/src/read_fch.f90

另外,在开源程序里面做这个比费劲研究闭源程序舒服多了。

评分 Rate

参与人数
Participants 1
eV +5 收起 理由
Reason
biogon + 5 GJ!

查看全部评分 View all ratings

6万

帖子

99

威望

6万

eV
积分
125127

管理员

公社社长

3#
发表于 Post on 2022-12-4 15:05:33 | 只看该作者 Only view this author
游客,本帖隐藏的内容需要积分高于 25 才可浏览,您当前积分为 0
北京科音自然科学研究中心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

482

帖子

10

威望

6932

eV
积分
7614

Level 6 (一方通行)

BSJ Institute

2#
 楼主 Author| 发表于 Post on 2022-12-4 14:15:42 | 只看该作者 Only view this author
最新进展:在发帖之后想到,虽然不知道ILSW是什么东西, 但如果随便写点什么,会怎么样?于是就在fchk中写上:
  1. Num ILSW                                   I              1
  2. ILSW                                       I   N=         1
  3.            1
复制代码

嘿,您猜怎么着,成了!guess=read可以正确读取了。
但这其中的原理仍然不明,不知大家是否有线索。

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

GMT+8, 2026-2-19 13:58 , Processed in 0.185274 second(s), 25 queries , Gzip On.

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