计算化学公社

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

[算法与编程] 为什么计算化学软件喜欢用二进制文件存储波函数?

[复制链接 Copy URL]

370

帖子

7

威望

3497

eV
积分
4007

Level 6 (一方通行)

跳转到指定楼层 Go to specific reply
楼主
为什么计算化学软件喜欢用二进制文件而非文本文件存储波函数呢?
一般来说,波函数的必要信息就是分子几何坐标、基组信息和轨道系数矩阵,完全可以用文本文件存储。高斯支持的chk(二进制)和fchk(文本),orca支持的gbw(二进制)和molden(文本),都可以互相转换,说明二进制和文本内的信息都是相通的。
使用文本文件存储波函数还有几个好处:1、占用空间小(fchk大小一般只有chk的一半);2、方便阅读和修改;3、方便转换格式,把软件A算出来的波函数喂给软件B当初猜;4、不用担心在平台A产生的波函数文件,丢给平台B就打不开。
但是好像所有软件都喜欢用二进制文件存储波函数,而且就我所知只有高斯和orca支持把自己的二进制波函数文件转换成文本文件。为什么呢?


538

帖子

1

威望

5765

eV
积分
6323

Level 6 (一方通行)

9#
发表于 Post on 2022-8-11 15:20:21 | 只看该作者 Only view this author
zjxitcc 发表于 2022-8-11 10:59
fch一般比chk文件小。现在有时(或者说经常)会出现fch文件比chk文件大,是因为fch末尾有大量无用信息, ...

主要原因是二楼子宽大神说的,表示同一个数,文本要比二进制大很多,所以即使fchk里面的信息少于chk,也会在体系大到一定程度后,fchk大于chk,这之间有个交叉点。

4289

帖子

4

威望

9546

eV
积分
13915

Level 6 (一方通行)

MOKIT开发者

8#
发表于 Post on 2022-8-11 10:59:21 | 只看该作者 Only view this author
niobium 发表于 2022-8-11 08:28
fchk比chk小,只能说明你做的计算太少或者太小

fch一般比chk文件小。现在有时(或者说经常)会出现fch文件比chk文件大,是因为fch末尾有大量无用信息,在Total SCF Density之后的所有内容,其实可以删掉。另外,从G16C开始,若做CIS/TDDFT计算,formchk会把组态系数写进fch文件,导致大体系的fch文件巨大无比。
自动做多参考态计算的程序MOKIT

538

帖子

1

威望

5765

eV
积分
6323

Level 6 (一方通行)

7#
发表于 Post on 2022-8-11 08:28:38 | 只看该作者 Only view this author
fchk比chk小,只能说明你做的计算太少或者太小

6万

帖子

99

威望

6万

eV
积分
125148

管理员

公社社长

6#
发表于 Post on 2022-8-11 05:10:37 | 只看该作者 Only view this author
chk用formchk转成fchk后存的信息量远比chk要少。若再用unfchk转回chk,就会发现小于chk。
绝大多数量化程序总能以至少一种方式给出文本形式记录的波函数信息,比如Dalton、Molpro、xtb、CP2K等都能给出文本形式的molden文件,GAMESS-US在默认的NPRINT参数下得到的输出文件里也有充分的轨道信息。
但各种量化程序之间缺乏统一、严格、理想的文本格式交互波函数信息是个问题,所以我之前提出了mwfn格式(https://doi.org/10.26434/chemrxiv-2021-lt04f-v6

北京科音自然科学研究中心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

313

帖子

2

威望

3900

eV
积分
4253

Level 6 (一方通行)

5#
发表于 Post on 2022-8-11 03:13:13 | 只看该作者 Only view this author
本帖最后由 lyj714 于 2022-8-11 03:14 编辑

另外,二进制文件读写速度要比普通文本文件读写快很多的,特别是数据量非常大的情况。直接操作二进制流比什么一行一行的读写文本快,这是毋庸置疑的。

评分 Rate

参与人数
Participants 1
eV +2 收起 理由
Reason
hebrewsnabla + 2 我很赞同

查看全部评分 View all ratings

928

帖子

1

威望

8263

eV
积分
9211

Level 6 (一方通行)

4#
发表于 Post on 2022-8-11 00:53:58 | 只看该作者 Only view this author
本帖最后由 hebrewsnabla 于 2022-8-11 01:20 编辑

关于3,首先一个程序最初开发的时候一般是优先考虑自己读写方不方便的,不会太考虑和别的程序交互。
其实转换或读取二进制文件往往不是传轨道的主要障碍,大部分程序的二进制要么很好读(例如qchem,以及使用hdf5的一众程序)要么提供转换工具,当然死活不提供的也有。
主要障碍还是由于各个程序的积分库和某些convention不一样,得解决基函数顺序,是否归一化,是否差个常数,是否差个符号等等各种问题…… 还有就是传过去如何检验传对了,需要对两个程序的细节有一定了解。关于2,
文本格式固然方便肉眼阅读,但是如果考虑到程序“阅读”进行后处理的话,二进制也很方便(只要二进制格式是公开的(或者不公开,只方便内部开发者

关于4,比较现代的二进制文件是可以跨平台的,如hdf5。

评分 Rate

参与人数
Participants 1
eV +2 收起 理由
Reason
zjxitcc + 2 我很赞同

查看全部评分 View all ratings

4289

帖子

4

威望

9546

eV
积分
13915

Level 6 (一方通行)

MOKIT开发者

3#
发表于 Post on 2022-8-11 00:34:21 | 只看该作者 Only view this author
二进制文件确实多,但文本文件也不少,MOKIT就是瞄准了那些有轨道文本文件的量化程序。。。比如OpenMolcas的INPORB, ScfOrb等,Molpro的xml,GAMESS的dat文件。一般来说,多少总是支持一种文本格式的。
自动做多参考态计算的程序MOKIT

1万

帖子

0

威望

9870

eV
积分
22110

Level 6 (一方通行)

2#
发表于 Post on 2022-8-11 00:19:40 | 只看该作者 Only view this author
fchk比chk小应该是因为fchk存储的信息比chk少,以及很多数存储的精度比较低吧?
二进制文件存储浮点数的效率大概是文本文件的2倍多,一个双精度数用二进制文件存储需要8字节,用文本文件基本需要20字节才能保证不丢失精度(16位有效数字,加上小数点、科学计数法的指数,以及分隔各个数的空格)。实际上二进制文件的主要优势就是同等精度下文件比较小,如果不考虑这一点,基本没有什么理由用二进制文件。

评分 Rate

参与人数
Participants 1
eV +3 收起 理由
Reason
hebrewsnabla + 3 我很赞同

查看全部评分 View all ratings

Zikuan Wang
山东大学光学高等研究中心 研究员
BDF(https://bdf-manual.readthedocs.io/zh_CN/latest/Introduction.html)、ORCA(https://orcaforum.kofo.mpg.de/index.php)开发团队成员
Google Scholar: https://scholar.google.com/citations?user=XW6C6eQAAAAJ
ORCID: https://orcid.org/0000-0002-4540-8734
主页:http://www.qitcs.qd.sdu.edu.cn/info/1133/1776.htm
GitHub:https://github.com/wzkchem5
本团队长期招收研究生,有意者可私信联系

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

GMT+8, 2026-2-22 19:29 , Processed in 0.160153 second(s), 22 queries , Gzip On.

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