“第10届量子化学波函数分析与Multiwfn程序培训班将于5月4-8日于北京举办,这是一次性完整、系统学习波函数分析的各种理论知识和全面掌握强大的Multiwfn波函数分析程序使用的最不可错过的机会!请点击此链接查看详情和报名方式,欢迎参加!

“第18届北京科音分子动力学与GROMACS培训班” 将于5月23-26日于北京举办。这是一次性全面、系统学习分子动力学模拟知识和最流行的分子动力学程序GROMACS的关键机会!报名正在进行中,请点击此链接查看详情,欢迎参加!

计算化学公社

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

[CP2K] RFC:CP2K的DFT-D4校正是否值得完全“内部”化?

[复制链接 Copy URL]

187

帖子

1

威望

632

eV
积分
839

Level 4 (黑子)

本帖最后由 UW_0728. 于 2026-4-2 23:40 编辑

如果把CP2K的DFT-D4给做成内部功能(也就是不用再依赖外部库,不是必须安装额外的dftd4才能用d4校正),这样做是否值得,或者说对于用户而言相比目前实现能否带来明显收益?

目前的情况如下:
EEQ等最耗时的部分CP2K从2025.1版本起一直都有内部代码可以接管(支持MPI并行,因此对于CP2K可以真正做到和DFT-D3一样几乎零耗时;在DFTD4校正关键词所在section里加一行“D4_REFERENCE_CODE F”即可,这一关键词默认值为T)。最近的开发分支修复了这部分内部实现代码存在的一些问题,现在其色散校正能等结果数据可以和完全依赖外部库实现时的数据几乎精确一致;并且把D4_REFERENCE_CODE的默认值改成了F。目前的D4代码主要还剩一些参数和参数映射操作、以及最终的校正能计算操作,依然必须借助DFT-D4外部库来实现。要将剩余的这一部分集成进CP2K代码中,面临的主要难题,除了代码集成本身之外,还可能包括日后D4参数库中数据的调整带来的额外维护成本;但预期的好处也是显而易见的:不再需要DFT-D4这一外部依赖,同时与该外部依赖配置相关的问题也将不复存在。

希望能够听到大家都一些意见和看法,谢谢大家。

Failed to load the content due to unknown reasons.

1295

帖子

6

威望

2757

eV
积分
4172

Level 6 (一方通行)

傻傻的木瓜

2#
发表于 Post on 2026-4-3 00:30:07 | 只看该作者 Only view this author
如果把参数文件放在data文件夹,那在维护上和其他已经放在那里的数据相比有什么特别的困难么?我反而是不能理解当初为什么搞出src/uff_vdw_radii_table.F和src/xtb_parameters.F这样的源文件。

顺便问两个问题:(1) 现在DFT-D4还有像https://github.com/cp2k/cp2k/issues/3961说的counterpoise计算问题不?(2) EEQ电荷的计算速度如果能超过Mulliken和Hirshfeld等的话,会不会有像https://github.com/cp2k/cp2k/issues/4227所说让plumed在做AIMD的metadynamics时读取、进而构建集合变量的可能?
√546=23.36664289109

187

帖子

1

威望

632

eV
积分
839

Level 4 (黑子)

3#
 楼主 Author| 发表于 Post on 2026-4-3 00:57:20 | 只看该作者 Only view this author
本帖最后由 UW_0728. 于 2026-4-3 10:04 编辑
Uus/pMeC6H4-/キ 发表于 2026-4-3 00:30
如果把参数文件放在data文件夹,那在维护上和其他已经放在那里的数据相比有什么特别的困难么?我反而是不能 ...

感觉那两个文件里面的数据规模都很小,可能也无可厚非吧;data里面的大都是数据规模很大的,要硬编码进Fortran源代码中完全是吃力不讨好,更别说基组可能还会随时有添加和更新。至于dftd4的数据,也许单另弄一个data/dftd4.dat确实会更合适。

(1) 我觉得应该没啥问题了,如果按照那个issue里面讨论中开发者认为应该看的标准和测试结果来看的话(内部代码问题修复后测试结果跟那里面的一模一样,而jpoto的话是“It seems to work”)
(2) 很抱歉,我对metadynamics不咋了解
Failed to load the content due to unknown reasons.

1295

帖子

6

威望

2757

eV
积分
4172

Level 6 (一方通行)

傻傻的木瓜

4#
发表于 Post on 2026-4-3 01:21:27 | 只看该作者 Only view this author
UW_0728. 发表于 2026-4-3 00:57
感觉那两个文件里面的数据规模都很小,可能也无可厚非吧;data里面的大都是数据规模很大的,要硬编码进Fo ...

倒也不一定是metadynamics,我想表达的是如果EEQ电荷能比较快速计算且质量够好的话,或许从DFT-D4计算的流程中独立出来会有其他用处,比如和能量坐标受力一起输出作为机器学习势的训练数据以便描述极化作用之类的。

理论上DFT-D4有没有部分参数可以适配CP2K的赝势和基组做调优的空间,比如让其搭配常见泛函时更好复现二维材料实验晶胞参数、堆积层间距之类的?
√546=23.36664289109

187

帖子

1

威望

632

eV
积分
839

Level 4 (黑子)

5#
 楼主 Author| 发表于 Post on 2026-4-3 10:15:27 | 只看该作者 Only view this author
本帖最后由 UW_0728. 于 2026-4-3 10:26 编辑
Uus/pMeC6H4-/キ 发表于 2026-4-3 01:21
倒也不一定是metadynamics,我想表达的是如果EEQ电荷能比较快速计算且质量够好的话,或许从DFT-D4计算的 ...

这个我也没底

1. 也许还真有这样的应用价值;不过EEQ电荷在cp2k里本来就是独立模块,目前除了用在D4校正还用在GFN0-xTB上,但单另的关键词模块好像的确缺
2. 我觉得可以有,但需要多花费不少时间吧,改进应该也挺有限的
Failed to load the content due to unknown reasons.

187

帖子

1

威望

632

eV
积分
839

Level 4 (黑子)

6#
 楼主 Author| 发表于 Post on 7 day ago | 只看该作者 Only view this author
本帖最后由 UW_0728. 于 2026-4-6 23:42 编辑

我借助Claude尝试性地生成了一个Python脚本,用于将dftd4源码包中有用的参数文件整合、转化为CP2K中计算D4需要的且符合CP2K的Fortran代码格式要求的Fortran文件。脚本见附件。这个脚本应该生成两个文件,一个是qs_dispersion_data.F,储存与元素有关的一般参数,大小十几kB;另一个是qs_dispersion_ref.F,储存参考EEQ电荷、极化率等计算C6值需要的信息,大小400+kB。这个脚本将来可以放到tools子目录下一个单另的文件夹里。目前其具体效果还没有充分验证(这需要后续对d4模块的其他修改)。

如果后续验证表明没问题的话,那就不需要data/dftd4.dat了(D4的参数规模显著小于D3和D3-BJ);此外,源代码中也有其他自动生成的大文件,比如src/hfx_base下的三个文件,以及src/minimax下的minimax_exp_k53.F文件,它们的规模也都明显大于qs_dispersion_ref.F的规模,因此把这些参数放到里面硬编码进去应该是可取的,同时因为有了Python脚本,重新生成这两个文件也很方便(这样唯一需要“手动”关心的参数方面的东西就是会放在qs_dispersion_utils.F里面的泛函相关参数了)。

generate_d4_data.py (25.57 KB, 下载次数 Times of downloads: 2)
Failed to load the content due to unknown reasons.

本版积分规则 Credits rule

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

GMT+8, 2026-4-13 21:46 , Processed in 0.411111 second(s), 23 queries , Gzip On.

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