MateriApps
物質科学シミュレーションのポータルサイト

現在アプリ掲載数307件

お問合せ / アプリ掲載依頼
    • JP
    • EN
  • MateriApps について
  • レビュー募集
もっと詳しく探す
  • NEWS / 講習会・イベント
  • アプリ一覧
  • アプリ詳細検索
  • キーワード解説
  • レビュー
  • 事例
  • アプリコンシェルジュ
  • インストールしないでアプリを
    試せる「MateriApps LIVE!」

    詳細はこちら
  • MateriApps について
  • レビュー募集
  • プライバシーポリシー
  • お問合せ / アプリ掲載依頼
  • アプリ一覧
  • psi4

psi4

  • 公開度:3 ★★★
  • ドキュメント充実度:3 ★★★

量子化学計算を行うオープンソースアプリケーション。ハートリー-フォック近似、密度汎関数理論、結合クラスター法、CI法などを用いた量子化学計算を行うことができる。プログラムはC++で書かれているが、Python用のAPIが提供されており、Python上から設定や計算の実行などを行うことができる。

Psi4のテスト計算 体験記
Last Update:2022/12/26
あなたはすでに投票済みです!

Masahiro FUKUDA

はじめに

ここではPsi4(サイフォー)でテスト計算を行ったレビューを書きます。

本家のチュートリアルは、
https://psicode.org/psi4manual/master/index_tutorials.html
https://www.youtube.com/watch?v=sTkCL37A64E&list=PL0jgn5Q60aHuUc2vcErG31yDRLD0oGjls
になります。

インストール・コンパイル方法

アプリのダウンロードページ(https://psicode.org/installs/latest)から最新版をダウンロードします。今回はWSL2(ubuntu)+Intel oneAPIの環境でインストールします。

ダウンロードファイルを実行して、いくつかの質問に答えると簡単にインストールされます。

$ bash Psi4conda-1.6.1-py310-Linux-x86_64.sh
...
...
...
Do you accept the license terms? [yes|no]
[no] >>> yes                                                                             

Psi4conda will now be installed into this location:
/home/fukuda/psi4conda

  - Press ENTER to confirm the location
  - Press CTRL-C to abort the installation
  - Or specify a different location below

[/home/fukuda/psi4conda] >>> /home/fukuda/apps/psi4/psi4conda

基本はyesとEnterで大丈夫です。
インストールが終わると、以下のコマンドでpsi4condaが使えるようになっていることが分かります。

$ conda info --envs
# conda environments:
#
                         /home/fukuda/apps/anaconda3
base                  *  /home/fukuda/apps/psi4/psi4conda

※もし、元の自分のconda環境に戻したい場合は、

$ conda activate /home/fukuda/apps/anaconda3

のようにすればよい。

 

実行方法

まず、Psi4のサイトのチュートリアルにあるH2OのHartree–Fock SCF計算を試してみます。(https://psicode.org/psi4manual/master/tutorial.html#sec-tutorial)

testフォルダを作り、そこにinput.datというインプットファイルを作成します。

# input.dat
# Any line starting with the # character is a comment line
#! Sample HF/cc-pVDZ H2O computation

memory 600 mb

molecule h2o {
  O 
  H 1 0.96
  H 1 0.96 2 104.5
}

set basis cc-pVDZ
energy('scf')

Molecule h2oの中では、Z-matrixで分子構造を記載しています。Z-matrix以外でも構造を指定することが可能です。

(https://psicode.org/psi4manual/master/psithonmol.html#coordinates)

実行は以下で行うことができます。

$ psi4 input.dat output.dat

 

実行結果

実行結果は、output.datに出力されています。output.datのIteration部分を見ることで、8ステップ目でscf計算が収束していることが分かります。

==> Iterations <==

                           Total Energy        Delta E     RMS |[F,P]|

   @DF-RHF iter SAD:   -75.50772041125677   -7.55077e+01   0.00000e+00 
   @DF-RHF iter   1:   -75.95376270516482   -4.46042e-01   3.03066e-02 DIIS/ADIIS
   @DF-RHF iter   2:   -76.00706363301680   -5.33009e-02   1.73566e-02 DIIS/ADIIS
   @DF-RHF iter   3:   -76.02603257829331   -1.89689e-02   2.30937e-03 DIIS/ADIIS
   @DF-RHF iter   4:   -76.02661197956334   -5.79401e-04   3.72696e-04 DIIS/ADIIS
   @DF-RHF iter   5:   -76.02663177626316   -1.97967e-05   6.75689e-05 DIIS
   @DF-RHF iter   6:   -76.02663270891111   -9.32648e-07   1.05815e-05 DIIS
   @DF-RHF iter   7:   -76.02663273457703   -2.56659e-08   1.47100e-06 DIIS
   @DF-RHF iter   8:   -76.02663273509029   -5.13253e-10   3.44832e-07 DIIS
  Energy and wave function converged.

収束したエネルギーもoutput.datの中に出力されています。

  @DF-RHF Final Energy:   -76.02663273509029

   => Energetics <=

    Nuclear Repulsion Energy =              9.1681932964243487
    One-Electron Energy =                -123.1035077420448545
    Two-Electron Energy =                  37.9086817105302245
    Total Energy =                        -76.0266327350902884

 

PsiAPIの利用

PsiAPIを利用することで、上記の計算をpython形式で実行することができます。

今回はrun_h2o_scf.pyとして下記のようなコードを作りました。

# run_h2o_scf.py
# Ignore this block -- it's for the documentation build
try:
    import os, sys
    sys.path.insert(1, os.path.abspath('/home/runner/work/psi4/psi4/code/objdir/stage//usr/local/psi4/lib/'))
except ImportError:
    pass

# This is the important part
import psi4

psi4.core.set_output_file('output.dat', False)

#! Sample HF/cc-pVDZ H2O Computation

psi4.set_memory('500 MB')

h2o = psi4.geometry("""
    O
    H 1 0.96
    H 1 0.96 2 104.5
""")

psi4.energy('scf/cc-pvdz')

以下を実行すると、先ほどと同様にoutput.datが得られます。

$ python run_h2o_scf.py

 

終わりに

ここでは、Psi4のテスト計算を試してみました。Psi4は、チュートリアルやAPIの使い方などマニュアルサイトも充実しており、pythonによるプログラミングを知っている人であれば、簡単に利用しやすいモダンなアプリと言えるでしょう。

04 / 06

  • 01基本情報
  • 02事例・論文
  • 03講習会
  • 04レビュー
  • 05開発者の声
  • 06このアプリ情報に
    ついてのお問い合わせ
TOP

MateriApps
物質科学シミュレーションのポータルサイト

  • NEWS / 講習会・イベント
  • アプリ一覧
  • アプリ詳細検索
  • キーワード解説
  • 事例
  • アプリコンシェルジュ
  • プライバシーポリシー
お問合せ / アプリ掲載依頼
  • 東京大学 物性研究所 The Institute for Solid State Physics
  • 東京大学 The University of Tokyo
  • CDMSI
  • CCMS

© MateriApps, 2013-2023. All rights reserved.