计算化学公社

标题: Windows系统下将cp2k输出的restart转化为cif文件 [打印本页]

作者
Author:
zeminFeng    时间: 6 day ago
标题: Windows系统下将cp2k输出的restart转化为cif文件
最近需要频繁的利用Multiwfn将restart文件转为cif文件,搜索论坛后发现仅有linux系统下进行转化的工具,如下链接。

Linux系统下将cp2k输出的restart转化为cif文件
http://bbs.keinsci.com/forum.php ... 39588&fromuid=67231


个人计算化学功底比较差,不太习惯使用linux系统,因此利用AI编写了一份windows下的转化工具(rest2cif.bat),需要转化为其他格式则需要自行修改相应代码。
使用方法:将.restart文件放置在
rest2cif.bat所在文件夹,双击rest2cif.bat即可自动将其批量转换为cif文件。




  1. @echo off
  2. setlocal enabledelayedexpansion

  3. :: ==========================================
  4. :: 自动获取管理员权限代码块
  5. :: ==========================================
  6. :check_Permissions
  7.     echo Administrative permissions checking...
  8.     net session >nul 2>&1
  9.     if %errorLevel% == 0 (
  10.         echo Success: Administrative permissions confirmed.
  11.     ) else (
  12.         echo Failure: Current permissions inadequate.
  13.         echo Requesting administrative privileges...
  14.         goto :UACPrompt
  15.     )
  16.     goto :start_script

  17. :UACPrompt
  18.     echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
  19.     echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %*", "", "runas", 1 >> "%temp%\getadmin.vbs"
  20.     "%temp%\getadmin.vbs"
  21.     del "%temp%\getadmin.vbs"
  22.     exit /b

  23. :start_script
  24. cd /d "%~dp0"

  25. :: 设置 Multiwfn 绝对路径,不要有中文符号
  26. set "MWpath="E:\Multiwfn_3.8_dev\Multiwfn.exe""

  27. :: 创建指令流
  28. (
  29.     echo.
  30.     echo 100
  31.     echo 2
  32.     echo 33
  33. :: 此处可做修改,33为.cif,1为.pdb,2为.xyz,5为.wfn,32为.mwfn
  34.     echo.
  35.     echo q
  36.     echo q
  37. ) > cmd.txt

  38. echo ---------------------------------------
  39. echo Starting Batch Conversion...
  40. echo ---------------------------------------

  41. for /f "delims=" %%f in ('dir /b *.restart 2^>nul') do (
  42.     echo Processing: "%%f"
  43.     !MWpath! "%%f" < cmd.txt >nul 2>nul
  44.    
  45.     if exist "%%~nf.cif" (
  46.         echo [OK] Success: "%%~nf.cif"
  47.     ) else (
  48.         echo [FAILED] "%%f"
  49.     )
  50. )

  51. if exist cmd.txt del cmd.txt

  52. echo ---------------------------------------
  53. echo Done.
  54. pause
复制代码




作者
Author:
Uus/pMeC6H4-/キ    时间: 6 day ago
到底有什么后处理软件有对cif文件的刚需?cif文件里的什么信息是必要的,只是基本的盒子矢量长度夹角与原子分数坐标(不算难),还是也得包括像https://github.com/cp2k/cp2k/issues/177提到的对称性与等价位置信息(更复杂)?

最近开发者在考虑把含Lattice=""字段定义盒子信息的extended XYZ文件作为默认的轨迹输出格式,方便multiwfn, ovito, ase等识别,所以我来顺便问问。
作者
Author:
zeminFeng    时间: 6 day ago
Uus/pMeC6H4-/キ 发表于 2026-4-7 11:34
到底有什么后处理软件有对cif文件的刚需?cif文件里的什么信息是必要的,只是基本的盒子矢量长度夹角与原子 ...

我是初学者,对我来说到了这一步基本就是观看图像了,xyz\pdb\cif格式都没啥区别,只是习惯了看cif。
作者
Author:
Loading0760    时间: 6 day ago
Multiwfn支持读取restart,然后应该是100-2-33就可以转成cif了,还可以转成pdb/xyz,挺方便的。
作者
Author:
spinel    时间: 6 day ago
Multiwfn本身就有windows版本,直接可以转换
作者
Author:
zeminFeng    时间: 6 day ago
Loading0760 发表于 2026-4-7 14:00
Multiwfn支持读取restart,然后应该是100-2-33就可以转成cif了,还可以转成pdb/xyz,挺方便的。

用的就是Multiwfn
作者
Author:
zeminFeng    时间: 6 day ago
spinel 发表于 2026-4-7 14:32
Multiwfn本身就有windows版本,直接可以转换

嗯嗯
作者
Author:
花非花    时间: 5 day ago
Multiwfn永远的神!这个转化我现在天天用,100-2-33,完成!




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