计算化学公社

标题: 监测CP2K优化/过渡态搜索过程的小方法 [打印本页]

作者
Author:
Hedonism    时间: 2026-3-27 20:51
标题: 监测CP2K优化/过渡态搜索过程的小方法
本帖最后由 Hedonism 于 2026-3-28 11:07 编辑

采用CP2K进行结构优化和TS搜索时,时常对优化过程监测以判断优化是否正常进行是非常重要的,当计算出问题时应当及时杀掉避免浪费时间。

首先就是对力和位移的一个监控,采用 grep "Informations at step =" TS.log -A20 可以监测过渡态优化的过程,会直接在linux终端输出各步骤的收敛情况。
有时用DIMER搜索过渡态时会跑崩(位移突然变大),因此上述命令除了能看到当前步的收敛情况外,还可以方便看出哪一步跑崩了,提取跑崩前的结构重新跑。
也可以用VMD诊断结构变化,我通常是用Mouse-Label-Bonds功能选中关键的化学键距离,并在Graphics-Labels-Graph下观看,跑崩前后会出现键长的突变。
(, 下载次数 Times of downloads: 0)
如果是结构优化的话,-A20需改为-A24

此外,过渡态搜索通常只需要监测某一根化学键的形成/断裂,也就是成键两个原子的距离,即可判断过渡态搜索过程是否正常,为了方便在linux命令行中直接监测,在此分享一个小脚本(OPT-D.sh)(本人水平实在有限,此脚本为AI编写,多次测试后结果无误),将这个脚本拷到任务运行的目录,并更改运行权限,通过 ./OPT-D.sh traj.xyz atom1 atom2 命令运行脚本,该脚本主要是计算优化过程每一帧中,atom1和atom2在笛卡尔坐标下的距离,即可得到优化过程的键长变化,当发现键长超出预期就可以杀掉任务,这个脚本同样可以用于AIMD过程轨迹文件。
(, 下载次数 Times of downloads: 0)

水平有限,请各位不吝赐教

-------------------- 二次更新 --------------------

根据Uus/pMeC6H4-/キ老师的建议,CP2K有自带关键字MOTION/PRINT/STRUCTURE_DATA可以检测优化过程的结构信息(键长、键角、二面角)
监测键长、键角和二面角的方法分别为"DISTANCE atom1 atom2", "ANGLE atom1 atom2 atom3", "DIHEDRAL_ANGLE atom1 atom2 atom3 atom4",本例测试监测两组键长和一个键角,输出到structure_data文件中

    &STRUCTURE_DATA
        DISTANCE  111  116
        DISTANCE  111  117
        ANGLE  111  117  110        
        FILENAME ./structure_data
    &END STRUCTURE_DATA


在当前目录就会生成一批structure_data-1_n.coordLog文件(n为优化步数),使用 grep "r(111,116)" $(ls *.coordLog | sort -V) 即可依次提取各帧中两原子间的矢量和笛卡尔距离(键角类似),信息更加丰富,不过这种方式的缺点在于不够灵活,每次需要单独定义需要监测的键长和键角,并且会生成大量的文件。
(, 下载次数 Times of downloads: 0)

修改OPT-D.sh脚本输出信息中小数点的保留位数,进行测试与上述结果一致,不过需要注意的是OPT-D.sh的计数是从1开始,structure_data-1_n.coordLog的计数是从0开始
(, 下载次数 Times of downloads: 0)


作者
Author:
Uus/pMeC6H4-/キ    时间: 2026-3-27 21:35
CP2K自带&MOTION/&PRINT/&STRUCTURE_DATA字段要求结构变化过程中输出指定原子间的键长键角等信息,完全用不着自己解析轨迹文件重新计算哦。
作者
Author:
Hedonism    时间: 2026-3-28 11:08
Uus/pMeC6H4-/キ 发表于 2026-3-27 21:35
CP2K自带&MOTION/&PRINT/&STRUCTURE_DATA字段要求结构变化过程中输出指定原子间的键长键角等信息,完全用不 ...

谢谢老师,已学习并更新




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3