Psi4は、Pythonモジュールとして使用するか、実行ファイルとして使用するかを選択できます。これまでの連載では、Psi4をPythonモジュールとして使用してきました。このモードをPsiAPIと呼びます。一方、Psi4用の固有言語を使い、入力ファイルを記述し実行ファイルに送信するモードをPsithonと呼びます。
Pythonを使うのに抵抗がある方にとって、Psithonモードの利用はよい選択といえるでしょう。また、PsiAPIユーザーも、すべての計算を安定して行えるわけではないのでPsithonモードの利用方法を覚えておくと便利です。
試しに、Avogadroを利用して入力ファイルを作成してみましょう。以下に、水分子のHF/STO-3Gレベルの構造最適化計算用の入力ファイル例を示します。
つまり、「psi4」の後に入力ファイルのファイルパスを記述して実行します。ここでは、ホームディレクトリ直下の「FileName.in」という名前の入力ファイルを指定しています。
例えば、Cドライブの「psi4」というフォルダに「FileName.in」という名前の入力ファイルが存在する場合は、「C:\psi4\FileName.in」というように指定します。
コマンドプロンプトで実行するのに抵抗がある方は、本ブログで公開しているPsi4runを試してみてください。 GUIから入力ファイルを実行でき、バッチ処理にも対応しています。
Psi4run - Batch job processor - | ダウンロード
これにより、Avogadroで計算結果を描画できるようにfchkファイル形式で保存することができます。「output.fchk」の部分は保存するfchkファイルのファイルパスを入力すれば、目的の場所にfchkファイルを生成することができます。
例えば、Cドライブの「psi4」というフォルダにfchkファイルを生成する場合は、以下のように指定します。
ファイルパス直前の「r」(raw文字列)を付けることを忘れないようにしましょう。
なお、Psi4runを使用する場合は、ファイル名のみでinputファイルと同じディレクトリにfchkファイルが出力されるようにしています。
生成したfchkファイルをAvogadroで開いた様子を以下に示します。
また、本記事で使用した入出力ファイルを以下に置いておきます。
http://pc-chem-basics.blog.jp/Psithon_ex-H2O.zip
残念ながら、既存のInputジェネレータには、こういった細かなオプションが標準で用意されていません。もし、標準の機能以外で実現したい機能がある場合は、公式ページのマニュアルを参照してみるとよいでしょう。
Psi4は、PsithonモードよりPsiAPIモードのユーザーが多いように思います。また、ネイティブのWindows環境にPsi4が対応したのが最近であることも、本格的なInputジェネレータが存在しない理由なのかもしれません。「こういったInputジェネレータが欲しい!!」というご要望が多ければ、作成して本ブログで公開したいと思うので、気軽にコメントください(*´ω`*)。
https://psicode.org/psi4manual/master/tutorial.html
Psithonの固有言語で使用されるキーワードをすべて一から直接入力するのは、効率的とは言えません。Inputジェネレータをうまく利用して効率化しましょう。ここで紹介しきれていないPsi4のすべての機能について知りたい場合は、以下のページを参照してみてください。
https://psicode.org/psi4manual/master/index.html
【関連記事】
Psi4run - Batch job processor - | ダウンロード
Psi4ではじめる量子化学計算 ①:導入編
Psi4ではじめる量子化学計算 ②:構造最適化編
Psi4ではじめる量子化学計算 ③:振動解析編
Psi4ではじめる量子化学計算 ④:インストール編
Pythonを使うのに抵抗がある方にとって、Psithonモードの利用はよい選択といえるでしょう。また、PsiAPIユーザーも、すべての計算を安定して行えるわけではないのでPsithonモードの利用方法を覚えておくと便利です。
Psi4用のInputジェネレータを利用する
Psithonモードの固有言語をすべて理解するのは大変です。そこで、サードパーティ製のInputジェネレータを利用するのが得策でしょう。Psi4用のInputジェネレータとしては、Avogadro、MoCalc2012、WebMOなどが候補に挙げられます。試しに、Avogadroを利用して入力ファイルを作成してみましょう。以下に、水分子のHF/STO-3Gレベルの構造最適化計算用の入力ファイル例を示します。
set basis STO-3G molecule { 0 1 O -0.27949 -0.50673 0.00000 H 0.69051 -0.50673 0.00000 H -0.60282 -1.05798 -0.72971 } optimize('scf')
Psi4用のInputジェネレータにアクセスするには、ツールバーの「Exteensions>Psi4...」(①)を選択します。あとは、計算方法などを指定して、[Generate]ボタン(②)をクリックするだけです。
これにより、ボタンをクリックするだけでPsithonモードの固有言語を知らなくても入力ファイルが簡単に作成できます。
Psi4の入力ファイルを実行ファイルで使用するには?
コマンドプロンプトで以下のように実行すれば、入力ファイルを実行ファイルに送信して計算を行えます。psi4 FileName.in
つまり、「psi4」の後に入力ファイルのファイルパスを記述して実行します。ここでは、ホームディレクトリ直下の「FileName.in」という名前の入力ファイルを指定しています。
例えば、Cドライブの「psi4」というフォルダに「FileName.in」という名前の入力ファイルが存在する場合は、「C:\psi4\FileName.in」というように指定します。
psi4 C:\psi4\FileName.in
コマンドプロンプトで実行するのに抵抗がある方は、本ブログで公開しているPsi4runを試してみてください。 GUIから入力ファイルを実行でき、バッチ処理にも対応しています。
Psi4run - Batch job processor - | ダウンロード
視覚化のために必要なコード
Psi4の計算結果を視覚化するためには、いくつかの方法があります。例えば、上記の水分子の構造最適化計算の入力ファイルに視覚化のオプションを追加するには、「optimize('scf')」を以下のように変更します。optimize, wfn = optimize('scf', return_wfn=True)
fchk(wfn,'output.fchk')
これにより、Avogadroで計算結果を描画できるようにfchkファイル形式で保存することができます。「output.fchk」の部分は保存するfchkファイルのファイルパスを入力すれば、目的の場所にfchkファイルを生成することができます。
例えば、Cドライブの「psi4」というフォルダにfchkファイルを生成する場合は、以下のように指定します。
optimize, wfn = optimize('scf', return_wfn=True)
fchk(wfn, r'C:\psi4\output.fchk')
ファイルパス直前の「r」(raw文字列)を付けることを忘れないようにしましょう。
なお、Psi4runを使用する場合は、ファイル名のみでinputファイルと同じディレクトリにfchkファイルが出力されるようにしています。
生成したfchkファイルをAvogadroで開いた様子を以下に示します。
また、本記事で使用した入出力ファイルを以下に置いておきます。
http://pc-chem-basics.blog.jp/Psithon_ex-H2O.zip
残念ながら、既存のInputジェネレータには、こういった細かなオプションが標準で用意されていません。もし、標準の機能以外で実現したい機能がある場合は、公式ページのマニュアルを参照してみるとよいでしょう。
Psi4は、PsithonモードよりPsiAPIモードのユーザーが多いように思います。また、ネイティブのWindows環境にPsi4が対応したのが最近であることも、本格的なInputジェネレータが存在しない理由なのかもしれません。「こういったInputジェネレータが欲しい!!」というご要望が多ければ、作成して本ブログで公開したいと思うので、気軽にコメントください(*´ω`*)。
おわりに
Psithonモードの公式のチュートリアルは、以下のURLにアクセスすると確認できます。https://psicode.org/psi4manual/master/tutorial.html
Psithonの固有言語で使用されるキーワードをすべて一から直接入力するのは、効率的とは言えません。Inputジェネレータをうまく利用して効率化しましょう。ここで紹介しきれていないPsi4のすべての機能について知りたい場合は、以下のページを参照してみてください。
https://psicode.org/psi4manual/master/index.html
PythonやPsi4の固有言語を学習するメリットは大きいです。しかし、目的に対してその手段を習得するまでのハードルが高すぎるように思います。Inputジェネレータを使えば、ボタンをクリックするだけでPythonやPsi4の固有言語を知らなくても入力ファイルが簡単に作成できるので、初心者はまずこの方法から試してみることをおすすめします。まずは、小さくはじめて、実務で必要になってから本格的に学習をはじめても遅くはありません。
近年では、プログラミングを必要としない『ノーコード』に対する興味や関心が高まっています。今後は、様々なソフトウェアでプログラミングを行うかどうかをユーザーに任せる流れが主流になってくると思います。
近年では、プログラミングを必要としない『ノーコード』に対する興味や関心が高まっています。今後は、様々なソフトウェアでプログラミングを行うかどうかをユーザーに任せる流れが主流になってくると思います。
本ブログでは、ノーコードによる機械学習について解説した書籍「ノーコードではじめる機械学習」を出版しております。興味がある方は、お手に取っていただければ幸いです!!
リンク
【関連記事】
Psi4run - Batch job processor - | ダウンロード
Psi4ではじめる量子化学計算 ①:導入編
Psi4ではじめる量子化学計算 ②:構造最適化編
Psi4ではじめる量子化学計算 ③:振動解析編
Psi4ではじめる量子化学計算 ④:インストール編
コメント
コメント一覧 (4)
psi4のインストールに挫折したのですが、もう一度挑戦しようという気になりました。
ぜひ、SAPTのインプットと解説も、HPで紹介して欲しいです!
コメントありがとうございます。
記事が再挑戦するきっかけになれたということで、大変嬉しいです!!
対称性適応摂動理論については、これまで扱ってなかったので検討してみます(*´ω`*)。
取り急ぎ、Psi4のマニュアルにあるSAPTセクションのURLを貼っておきます。
https://psicode.org/psi4manual/1.5.0/sapt.html#sapt-symmetry-adapted-perturbation-theory
マニュアルではなかなか掴めなかったので、本当にありがたいです。
長距離補正項を含む汎関数では、POLとXCの値ははるかに大きく、一方で、ESは非常に小さい値が得られました。
また、Mx系の汎関数では、イオン種のCT項が大きめにでました。
汎関数依存性にどれほどの意味があるか分かりませんが、最適化計算と同じ計算法でエネルギー分割をされたいという方も多いと思いますので。ご参考までに