计算化学公社

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

[CP2K] CP2K v2026.2发布

[复制链接 Copy URL]

229

帖子

1

威望

858

eV
积分
1107

Level 4 (黑子)

本帖最后由 UW_0728. 于 2026-7-15 18:55 编辑

CP2K 2026.2版本刚刚发布。这几个月,CP2K的开发分支发生了不少安装构建和功能方面的重要更新。以下列出我个人认为比较值得留意的更新:
一、编译与安装
1. Toolchain —— 改进和易用性
2026.1版本彻底弃用了旧的Makefile + arch files构建系统,转向了CMake;本来这是一个有进步意义的更新,但是开发者却没有在toolchain等地方及时且很好地更新安装说明,导致2026.1的安装难度不降反升。这次版本中toolchain对于用户而言最大的积极变化,就是添加了一个新的“build_cp2k.sh”脚本,该脚本能够自动解析toolchain安装配置、生成CMake指令、编译和安装CP2K,大大减少了用户安装CP2K的麻烦。此外,该版本对toolchain脚本进行了一些细节上的修缮,以增强其稳健性。
2. Spack —— 新的依赖管理路径
添加了“make_cp2k.sh”脚本,该脚本利用Spack包管理器来下载和安装依赖,然后编译CP2K。整个流程非常方便,对于开发者而言不仅比toolchain更容易维护(Spack是专门为HPC设计且被广泛使用的包管理器,有庞大的Spack社区来维护),也方便集成更多的新功能和新依赖;缺点是没有简单、合适的离线安装途径,因此用户必须有良好的网络连接。
二、k点
    1. DFT+U:对Mulliken和Mulliken charges两种途径添加了k点支持(Löwdin方法的k点实现较为复杂,暂时未能予以实施)。
    2. 波函数外推:为USE_PREV_WF以及PS、ASPC两种高阶外推方法添加了稳健的k点支持路径;预计USE_PREV_P等纯粹基于密度矩阵的外推途径的使用价值将会因此被大幅挤占和削弱。
    3. 对称性:支持利用晶体的空间对称性减少k点、节约计算耗时(但在我看来还不稳,可以当作实验性功能)。目前存在内置的K290和依靠外部依赖Spglib两种途径,后者更稳健一些。
    4. Harris能量校正:利用这一功能可以实现从Gamma点计算产生能够用于k点计算的“*.kp”波函数重启文件,该途径也允许不同基组之间的波函数重启操作(例如从使用DZVP-MOLOPT-SR-GTH基组的计算生成可供使用TZVP-MOLOPT-SR-GTH基组的计算读取的.kp文件)。
三、DOS
重构了DOS输入例程,&PDOS并入&DOS模块(XAS路径保持不变)。
能够对得到的TDOS和PDOS数据做展宽,得到DOS曲线图(包在&CURVE关键词下)。原本的TDOS输出(*.dos)无展宽操作,PDOS输出(*.pdos)列出各个轨道能级处各类原子的各个角动量的投影权重;这一设置实施后这些输出仍然保留,但通过添加&CURVE关键词段可以额外输出展宽处理后的DOS曲线(带curve后缀)。得到的“.dos”和“.pdos”文件可以用gnuplot等作图工具作出DOS图。更多说明见手册:https://manual.cp2k.org/trunk/me ... _structure/dos.htm
此外,考虑k点时现在也可以输出PDOS了,但只支持输出展宽后曲线,原始权重数据以及LDOS/R_LDOS等扩展功能仍无法输出,因此功能还是比较受限。
四、波函数外推
引入了GExt系列外推方法。该方法基于历史重叠矩阵变化来实时拟合外推系数、再对历史波函数子空间进行投影组合(这一思想不同于已有的PS/ASPC方法,这些方法的外推系数是固定的);支持考虑k点。该方法在CP2K中包括GEXT_PROJ和GEXT_PROJ_QTR两种方法,前者尤其适合结构优化任务(根据我的测试比ASPC总体表现要强),而后者在原理上更注重长时间动力学稳定性。
注意,在启用k点对称性的结构优化计算中任何外推方法都无效(一定会回退到USE_GUESS),因为每步优化在重建k点对称性的同时会把波函数历史清空。
五、Molden文件
    1. 添加了新的可选项:WRITE_CELL写入晶胞参数([Cell])、WRITE_PSEUDO写入有效核电荷数([Pseudo],与ORCA采用的方法相同),MARK_GHOST标记鬼原子(将其相应原子序数变为0)。
    2. 进一步修复了使用OT时轨道能量和系数等波函数信息写入的问题,并支持使用OT时写入空轨道信息,写入的空轨道数目由&MO_MOLDEN下关键词NLUMO决定;这意味着OT得到的molden文件也可以直接利用Multiwfn绘制PDOS了。
六、GFN2-xTB(tblite)
进行了扩展性(?)重构,重构后tblite不再直接接手SCF,而是更像一个提供CP2K端SCF所需项(比如H0/S/multipole矩阵、各种参数、色散校正模型等)的后端。由此也带来了这些改进:新增支持除DIRECT_P_MIXING外的其他密度混合方法;支持考虑k点;支持OT方法等。
然而,这也带来了一个很尴尬的困境:tblite本身只支持OpenMP并行,而CP2K的SCF端更利好MPI并行,这种冲突导致无论采取什么样的并行方式,CP2K中GFN2-xTB的计算效率都低于重构前的实现,也低于内置的GFN1-xTB实现。这一问题表现为:纯MPI并行时SCF前后过程都会卡一段时间,纯OpenMP并行时SCF速度慢,混合并行时两种缺点同时存在且相比于纯某种方法并行会部分削弱。目前没有任何好的办法能够完美解决这一问题,也因此在CP2K中使用GFN2-xTB性价比远不如GFN1-xTB。
七、新增GauXC/Skala支持
我本人对此不太了解,但这是本次版本更新中功能引入规模最大的一个方面。按照我的理解,GauXC可以提供一些类似libXC的功能,但其在CP2K中集成的突出亮点在于其OneDFT后端与Skala机器学习模型的结合(支持压力计算和k点)。需要libTorch作为依赖。
八、其他对我而言很值得一提的更新(可能不完整)
    1. CELL_OPT下TYPE关键词被去掉,以后变胞优化类型只有DIRECT_CELL_OPT一种。
    2. 结构优化结束会输出最终结构的CIF和Extended XYZ格式文件;同时也可以在输入文件中读取extended XYZ结构。(附:CP2K正在积极推进将extxyz作为其默认结构输出选项)
    3. 修复了DFT-D4色散校正内置流程存在的一些bug;CP2K的DFT-D4校正将默认使用支持MPI并行的内置EEQ求解器(实际上于版本2025.1引入)以节约耗时(但仍需要依赖外部dftd4独立库来提供参数)。
    4. 增加了自动选择DFT-D色散校正参考泛函的功能(但我没实际测试过),也支持从tblite附带的s-dftd3依赖读取未内置到CP2K里的更多泛函的参数。
    5. 将Gaussian、Methfessel-Paxton(MP)、Marzari-Vanderbilt(MV)三种Smearing方法引入了CP2K中,即意味着Fermi-Dirac不再是唯一实用途径。使用替代方法的优点是可以避免Fermi-Dirac方法可能的长拖尾问题,有较好的实用价值;缺点是缺乏物理意义,因此不能用于探究与电子温度相关的属性。Gaussian展宽普适性较强,但在金属体系中表现一般不如MP和MV;MP和MV只能用于金属而不能用于半导体等其他带隙很小的体系。此外,使用Fermi-Dirac或Gaussian smearing方法时将一并输出T→0或σ→0的外推能量。
    5. 密度混合参数新增ALPHA_MAG和BETA_MAG,用户可以通过单独调节这两个参数来尝试改善磁性体系的SCF收敛性(但这并不从根本上解决CP2K对部分磁性体系或涉及过渡金属的体系难收敛的问题)。
    6. 支持了二维周期性体系在ANALYTIC和MT泊松求解器下计算解析压力张量(实际之前在代码中已经有,但是因为存在各种各样的问题一直被阻止使用),因而可以对二维周期性体系进行变胞优化(前提是必须通过CONSTRAINT固定非周期性方向长度:若没有显式设置,则自动设置为非周期性方向;若显式设置但不包含非周期性方向,则报错退出);然而该办法在实际计算中的验证尚不充分,因此可以当作实验性功能
    7. Dimer过渡态寻找方法可以读取振动分析产生的molden文件产生初始向量。
    8. HSE06等shortrange杂化泛函计算留出了设置截断半径的选项(小于内置计算出来的值仍然会报警告)。
    9. L-BFGS的优化有另外一套判断逻辑,因此判定收敛时四个常规收敛指标(如果是变胞的话再加上压力)不一定达到收敛限;该版本为L-BFGS结构优化收敛增加了一个更明确的提示,并且可以选择在单独的文件输出每一步优化时相应特定参数的收敛情况。
    10. 杂化泛函计算的ACE(Adaptively Compressed Exchange)加速方法。
    11. Conda-forge和Fedora RPM-build预构建包路径已经修复并重新运作,预计将于不久后可用于安装最新版本CP2K(v2026.2)。

评分 Rate

参与人数
Participants 3
eV +15 收起 理由
Reason
reid + 5 谢谢分享
s8ga + 5
Uus/pMeC6H4-/キ + 5 好物!

查看全部评分 View all ratings

Failed to load the content due to unknown reasons.

1407

帖子

6

威望

3136

eV
积分
4663

Level 6 (一方通行)

傻傻的木瓜

2#
发表于 Post on 2 hour ago | 只看该作者 Only view this author
本帖最后由 Uus/pMeC6H4-/キ 于 2026-7-15 20:30 编辑

本次更新在输入手册的基础上添加了一批文档,除了正文提到的DOS的页面外还包括Foreword and FAQTroubleshootingk-PointsMolecular orbitals outputWannier90 interface等,此外Geometry and cell optimizationMolecular Dynamics等亦明显扩充。

几个月前开发者曾辩论过是否全面转向spack而废弃toolchain来安装工具链,我之前的帖子thread-58246-1-1.html有所提到,最后还是维持原样,大部分保留toolchain安装,部分高级功能仅支持spack安装,具体的文档在Build from Source一页。

这里补充一下一楼没有提到的NEB类过渡态搜索方法在输出上的改变:
(1) 新增&MOTION/&BAND/&FINAL_BAND字段,将任务结束时各点的原子坐标输出为Extended XYZ格式的轨迹文件(晶格矢量全部与初始的&FORCE_EVAL/&SUBSYS/&CELL一致)并用Ener_loc_max=T标记局部极大值点、Ener_loc_min=T标记局部极小值点;
(2) 既有的&MOTION/&BAND/&PROGRAM_RUN_INFO和&MOTION/&BAND/&CONVERGENCE_INFO的输出统一从PRINT_LEVEL LOW开始就输出到最主要的日志文件里(之前是MEDIUM才输出,且收敛信息不在主日志里而在各个点的日志里);
(3 ) 在PROGRAM_RUN_INFO字段下新增PLOT_REL_ENERGY关键词,在主日志里简单绘制各点相对能量的情况,标明极大值点、极小值点,默认不开启以保留更紧凑的既往输出格式。这点可以看个例子,论坛吞了部分行首空格,实际上是对齐的:
旧格式(PLOT_REL_ENERGY .FALSE.)
  1. *******************************************************************************
  2. BAND TYPE                     =                                          CI-NEB
  3. BAND TYPE OPTIMIZATION        =                                              SD
  4. STEP NUMBER                   =                                               4
  5. NUMBER OF NEB REPLICA         =                                              25
  6. DISTANCES REP =        2.099476        2.100774        2.103412        2.107485
  7.                         2.111088        2.106140        2.090831        2.064039
  8.                         2.050204        2.048291        2.044169        2.040998
  9.                         2.038840        2.037971        2.037573        2.033886
  10.                         2.031527        2.031080        2.029082        2.024016
  11.                         2.018263        2.013712        2.010452        2.008908
  12. ENERGIES [au] =      -15.847179      -15.847154      -15.847071      -15.846913
  13.                       -15.846670      -15.846020      -15.842771      -15.835774
  14.                       -15.841410      -15.843203      -15.843360      -15.843418
  15.                       -15.843438      -15.843384      -15.843278      -15.842940
  16.                       -15.841070      -15.842295      -15.844274      -15.845523
  17.                       -15.846293      -15.846770      -15.847031      -15.847152
  18.                       -15.847179
  19. BAND TOTAL ENERGY [au]        =                             -396.11053576643678
  20. *******************************************************************************
复制代码
新格式(PLOT_REL_ENERGY .TRUE.)TEMPERATURE [K]主要是为了OPT_TYPE为MD时显示温度,如果是DIIS的优化算法根本不涉及温度所以是0
  1. *******************************************************************************
  2. BAND TYPE                     =                                          CI-NEB
  3. BAND TYPE OPTIMIZATION        =                                              SD
  4. STEP NUMBER                   =                                               4
  5. NUMBER OF NEB REPLICA         =                                              25
  6. REPLICA             ENERGY [au]  TEMPERATURE [K]  o-------------------------> E
  7.        1       -15.84717898 (*-)         0.000000  |O
  8. DISTANCE =          2.099476                      |
  9.        2       -15.84715379 (+-)         0.000000  |O
  10. DISTANCE =          2.100774                      |
  11.        3       -15.84707093 (+-)         0.000000  |O
  12. DISTANCE =          2.103412                      |
  13.        4       -15.84691281 (+-)         0.000000  |O
  14. DISTANCE =          2.107485                      |
  15.        5       -15.84667018 (+-)         0.000000  | O
  16. DISTANCE =          2.111088                      |
  17.        6       -15.84602032 (+-)         0.000000  |  O
  18. DISTANCE =          2.106140                      |
  19.        7       -15.84277101 (+-)         0.000000  |         O
  20. DISTANCE =          2.090831                      |
  21.        8       -15.83577421 (++)         0.000000  |                         X
  22. DISTANCE =          2.064039                      |
  23.        9       -15.84141011 (-+)         0.000000  |            O
  24. DISTANCE =          2.050204                      |
  25.       10       -15.84320302 (-+)         0.000000  |        O
  26. DISTANCE =          2.048291                      |
  27.       11       -15.84336026 (-+)         0.000000  |        O
  28. DISTANCE =          2.044169                      |
  29.       12       -15.84341762 (-+)         0.000000  |        O
  30. DISTANCE =          2.040998                      |
  31.       13       -15.84343835 (--)         0.000000  |        x
  32. DISTANCE =          2.038840                      |
  33.       14       -15.84338410 (+-)         0.000000  |        O
  34. DISTANCE =          2.037971                      |
  35.       15       -15.84327782 (+-)         0.000000  |        O
  36. DISTANCE =          2.037573                      |
  37.       16       -15.84293970 (+-)         0.000000  |         O
  38. DISTANCE =          2.033886                      |
  39.       17       -15.84106978 (++)         0.000000  |             X
  40. DISTANCE =          2.031527                      |
  41.       18       -15.84229486 (-+)         0.000000  |          O
  42. DISTANCE =          2.031080                      |
  43.       19       -15.84427353 (-+)         0.000000  |      O
  44. DISTANCE =          2.029082                      |
  45.       20       -15.84552313 (-+)         0.000000  |   O
  46. DISTANCE =          2.024016                      |
  47.       21       -15.84629260 (-+)         0.000000  | O
  48. DISTANCE =          2.018263                      |
  49.       22       -15.84676975 (-+)         0.000000  |O
  50. DISTANCE =          2.013712                      |
  51.       23       -15.84703143 (-+)         0.000000  |O
  52. DISTANCE =          2.010452                      |
  53.       24       -15.84715186 (-+)         0.000000  |O
  54. DISTANCE =          2.008908                      |
  55.       25       -15.84717898 (-*)         0.000000  |O
  56.                                                    v Nr.
  57. NUMBER OF LOCAL MAXIMA (X) and MINIMA (x):    2    1
  58. BAND TOTAL ENERGY [au]        =                             -396.11053576643678
  59. *******************************************************************************
复制代码
√546=23.36664289109

本版积分规则 Credits rule

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

GMT+8, 2026-7-15 22:36 , Processed in 0.203363 second(s), 22 queries , Gzip On.

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