Skip to content

GUI tool for transition state (saddle point) optimization wiht XTB and geomeTRIC.

License

Notifications You must be signed in to change notification settings

npe1011/xtboptts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

XTB TS Optimization Tool with GUI

1. はじめに

1.1. 概要

GrimmeのxTBとgeomeTRIC [https://github.com/leeping/geomeTRIC] を利用して、遷移状態の最適化をおこうなうツールです。 (遷移状態でない極小値もできますが、特に使い道はないです)

1.2. 更新履歴

2024/9/11

  • とりあえず完成

2. 動作条件と起動

2.1. 動作確認環境

  • Windows 11
  • Python 3.8
  • geometric 1.0.2
  • wxpython 4.1.1
  • numpy 1.22.2
  • cclib 1.7.2
  • matplotlib 3.5.1
  • xtb-6.6.1 for Windows
python -m pip install wxpython cclib matplotlib geometric

で雑に動くと思います。Pythonが古いとエラーがでるかもしれません。

2.2. xTBの準備と設定

https://github.com/grimme-lab/xtb の右側のreleaseからWindows用のバイナリをダウンロードして適当な場所に置きます。ここでは D:\programs\xtb-6.6.1 においたものとします。 また適当な分子構造ビューワを用意します。

xtbscanフォルダの config.py をテキストエディタで開き、上のほうにあるいくつかのパラメータを自分の環境に合わせて書き換えます。

VIEWER_PATH = 'D:/programs/jmol/jmol.bat'
XTB_BIN = 'D:/programs/xtb-6.6.1/bin/xtb.exe'
XTB_PARAM_DIR = 'D:/programs/xtb-6.6.1/share/xtb'

3. 使い方

3.1. 起動

xtboptts.pyw を実行します。

3.2. 初期構造ファイルの準備と読み込み : Input File

  • ファイルの読み込みはファイルをドラッグアンドドロップするか上の ... ボタンから読み込みます。
  • 初期構造ファイルは xyz、Gaussian Job/Log ファイル、もしくはcclib [https://cclib.github.io/] で読み込めるファイルが利用できます。
  • 拡張子が gjf/com/log/out のものはGaussianファイルとして、xyz のものは xyzファイルとして処理します。それ以外はclibでそのまま読みこみます。
  • 複数構造があるファイルなどの場合はいずれも最後の構造が利用されます。
  • xyzファイル以外の場合、対応するxyzファイルが自動で作成されて初期構造ファイルとしてセットされます。
  • 複数構造があるxyzファイルの場合、name_last.xyzというファイルが自動で作成されて初期構造ファイルとしてセットされます。
  • 上記の場合、同名の古いファイルは上書きされるので注意してください。

3.3. 計算条件の設定 : XTB Settings

  • Methodは計算パラメータです。通常はgfn2でよいです。
  • chargeは電荷、UHFは不対電子の数で閉殻なら0、ラジカルなら1 etc.です。Gaussianとかの多重度と指定がちょっと違うので注意。
  • SolvationはALPBとGBSAがありますが、とりあえずやるならALPBでいいと思います(新しい方)。

3.4. 構造最適化の設定 : Optimization Settings

  • TS にチェックをいれると遷移状態、外すと通常の構造最適化をします。
  • Max Cycle は構造最適化の最大回数です。
  • Calc. Hess. はHessian計算を何回に一度行うかです。0にすると初回だけおこないます。
  • geomeTRICの仕様上、Hessianの再計算をおこなうときは、一度geomeTRICの構造最適化を停止し、Hessianを計算し直したのちにgeomeTRICを再起動します。このためむしろHessian計算頻度が高すぎると非効率な可能性があります。
  • Freq. にチェックを入れると構造最適化後、最終構造でHessian計算をしてその結果 (HessianデータおよびXTBが出力した熱力学パラメータの値)を保存します。
  • Temp. はFreqで熱力学パラメータを計算するときの温度の値です。

3.5. 計算の実行

  • Runを押すと計算が実行されます。
  • Stopを押すと停止しますが、その場合途中の構造とかのリカバリは難しいですので、なにか間違えたとき以外は待ってください。

3.6. 計算結果の可視化

  • 計算が終わるとメッセージボックスが出てきて、結果をロードするか聞かれます。何らかのエラーで止まった場合はロードできないことが多いです。
  • ロードすると、左下のCSVファイルのところにファイル名が読み込まれます。
  • 過去の計算結果も、CSVファイルをロードすれば読み込めます。CSVファイルをドラッグアンドドロップしてもよいです。
  • CSV以外のデータは、CSVを読んだときに対応するファイルがロードされるようになっています。
  • データを読み込んだ上で、その下の各ボタンを押すと可視化ができます。
  • view (all) は構造最適化中の全ての構造のXYZファイル (jobname_traj.xyz) をビューワで開きます。
  • view (final) は最終構造のXYZファイル (jobname_final.xyz) をビューワで開きます。
  • #.にステップ番号 (0スタート) を入れて、横のボタンを押すと可視化、座標系のクリップボードへのコピー、xyzでの保存ができます。
  • show table はCSVの中身 (構造最適化中の各種パラメータの変化) をテーブルで表示します。普通のCSVなのでエクセルで読んでも読めます。
  • plot を押すと上記の変化をmatplotlibでプロットします。
  • 最終のHessian計算をして正常にデータを読み込んだ場合、右下のfrequenciesの欄に基準振動が表示されます。選択して右のviewを押すとその振動をざっくり可視化します。stepはアニメーションのステップ数、shiftは変化させる大きさなので、適宜調整してください。
  • Thermochemistry の viewを押すとXTBから出力された熱力学パラメータを表示します。これはjobname_thermo.txtに保存されています。

3.7 出力ファイル

  • jobname.csv: エネルギーや勾配等の変化
  • jobname_traj.xyz: 構造最適化中の全構造
  • jobname_final.xyz: 構造最適化後の構造
  • jobname_hess.txt: 最終Hessianデータ
  • jobname_thermo.txt: 熱力学パラメータ

3.8 一時ファイルについて

  • 入力ファイルと同じところに計算中のログなどの一時ファイルが jobnamegeometric_xxx のようなディレクトリ名で出力されます。終了後にkeep logをyesにした場合以外はある程度削除されますが、ファイルアクセスの関係で一部残ってしまうので、適宜削除してください。
  • 一時ファイル等を残してチェックしたいときは、Keep Log を Yes にして実行してください。

About

GUI tool for transition state (saddle point) optimization wiht XTB and geomeTRIC.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages