计算化学公社

标题: [脚本] 用Multiwfn批量将结构优化结果生成cp2k输入文件 [打印本页]

作者
Author:
stishovite    时间: 2024-5-14 09:45
标题: [脚本] 用Multiwfn批量将结构优化结果生成cp2k输入文件
本帖最后由 stishovite 于 2024-5-14 17:16 编辑

用cp2k优化完结构后,输出了很多*.pdb文件。进行后面的计算,需要用Multiwfn打开*.pdb重新生成cp2k输入文件,如果手动操作,十分麻烦。
受到sob老师详谈Multiwfn的命令行方式运行和批量运行的方法 - 思想家公社的门口:量子化学·分子模拟·二次元 (sobereva.com),以及坛友相关帖子的启发,编了一个脚本用于解决上面的问题。

脚本内容如下:

  1. @echo off

  2. for %%i in (*.pdb) do (
  3.     D:\Multiwfn\Multiwfn.exe %%i < pdb2inp.txt
  4. )

  5. if not exist ".\task" mkdir ".\task"

  6. for %%f in (*.inp) do (
  7.     move %%f ".\task\" > nul
  8. )

  9. set "inplist=.\task\inplist.sh"
  10. if exist "%inplist%" del "%inplist%"

  11. for %%f in (.\task\*.inp) do (
  12.     echo mpirun -np 4 cp2k.popt %%~nxf ^|tee %%~nf.out >> "%inplist%"
  13. )

  14. echo All done!
复制代码




指令文件pdb2inp.txt的内容如下:

  1. 100 // Other functions (Part 1)
  2. 2 // Export input file
  3. 25 // CP2k

  4. -1 // Choose task
  5. 1 // Energy
  6. 0 // Gernerate
  7. 0 // Return
  8. q //quit
复制代码



该脚本仅适用于Windows,说明:

1. 要和*.pdb文件放在同一个目录下,运行时自动调用Multiwfn.exe,因此需要将D:\Multiwfn\Multiwfn.exe修改为实际地址。
2. Multiwfn的操作指令在pdb2inp.txt内,可以根据实际需求修改。
3. 自动将*.pdb转换完的*.inp文件存入task文件夹,并生inplist.sh用于批量提交任务.
4. 使用时,可根据实际需求修改脚本中的内容,例如要转换的文件格式(*.pdb)、Multiwfn的操作指令(pdb2inp.txt)、存放inp文件的目录名称(task)和批量提交任务文件的内容(mpirun -np 4)。


p.s. 本人刚开始学习第一性原理计算,有很多不懂,头很大,欢迎大家留言讨论。



(, 下载次数 Times of downloads: 4) (, 下载次数 Times of downloads: 5)




作者
Author:
sobereva    时间: 2024-5-14 18:00
传入Multiwfn的命令实际上还可以简化

以下部分可以改为直接在主界面输入cp2k
100 // Other functions (Part 1)
2 // Export input file
25 // CP2k

以下部分可以省略,默认就是算单点任务
-1 // Choose task
1 // Energy
作者
Author:
stishovite    时间: 2024-5-14 18:09
sobereva 发表于 2024-5-14 18:00
传入Multiwfn的命令实际上还可以简化

以下部分可以改为直接在主界面输入cp2k

感谢sob老师的回复,近距离感受到了您对高效简洁的极致追求。p.s. 后面部分没有省略的原因是,如果要选择其他任务,可以便于对照修改。




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