GrimmeのxTBとgeomeTRIC [https://github.com/leeping/geomeTRIC] を利用して、遷移状態の最適化をおこうなうツールです。 (遷移状態でない極小値もできますが、特に使い道はないです)
- とりあえず完成
- 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が古いとエラーがでるかもしれません。
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'
xtboptts.pyw
を実行します。
- ファイルの読み込みはファイルをドラッグアンドドロップするか上の ... ボタンから読み込みます。
- 初期構造ファイルは xyz、Gaussian Job/Log ファイル、もしくはcclib [https://cclib.github.io/] で読み込めるファイルが利用できます。
- 拡張子が gjf/com/log/out のものはGaussianファイルとして、xyz のものは xyzファイルとして処理します。それ以外はclibでそのまま読みこみます。
- 複数構造があるファイルなどの場合はいずれも最後の構造が利用されます。
- xyzファイル以外の場合、対応するxyzファイルが自動で作成されて初期構造ファイルとしてセットされます。
- 複数構造があるxyzファイルの場合、name_last.xyzというファイルが自動で作成されて初期構造ファイルとしてセットされます。
- 上記の場合、同名の古いファイルは上書きされるので注意してください。
- Methodは計算パラメータです。通常はgfn2でよいです。
- chargeは電荷、UHFは不対電子の数で閉殻なら0、ラジカルなら1 etc.です。Gaussianとかの多重度と指定がちょっと違うので注意。
- SolvationはALPBとGBSAがありますが、とりあえずやるならALPBでいいと思います(新しい方)。
- TS にチェックをいれると遷移状態、外すと通常の構造最適化をします。
- Max Cycle は構造最適化の最大回数です。
- Calc. Hess. はHessian計算を何回に一度行うかです。0にすると初回だけおこないます。
- geomeTRICの仕様上、Hessianの再計算をおこなうときは、一度geomeTRICの構造最適化を停止し、Hessianを計算し直したのちにgeomeTRICを再起動します。このためむしろHessian計算頻度が高すぎると非効率な可能性があります。
- Freq. にチェックを入れると構造最適化後、最終構造でHessian計算をしてその結果 (HessianデータおよびXTBが出力した熱力学パラメータの値)を保存します。
- Temp. はFreqで熱力学パラメータを計算するときの温度の値です。
- Runを押すと計算が実行されます。
- Stopを押すと停止しますが、その場合途中の構造とかのリカバリは難しいですので、なにか間違えたとき以外は待ってください。
- 計算が終わるとメッセージボックスが出てきて、結果をロードするか聞かれます。何らかのエラーで止まった場合はロードできないことが多いです。
- ロードすると、左下の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に保存されています。
- jobname.csv: エネルギーや勾配等の変化
- jobname_traj.xyz: 構造最適化中の全構造
- jobname_final.xyz: 構造最適化後の構造
- jobname_hess.txt: 最終Hessianデータ
- jobname_thermo.txt: 熱力学パラメータ
- 入力ファイルと同じところに計算中のログなどの一時ファイルが jobnamegeometric_xxx のようなディレクトリ名で出力されます。終了後にkeep logをyesにした場合以外はある程度削除されますが、ファイルアクセスの関係で一部残ってしまうので、適宜削除してください。
- 一時ファイル等を残してチェックしたいときは、Keep Log を Yes にして実行してください。