1. はじめに
CrySPYは結晶の組成を与えると構造を探索し構造最適化をすることができるソフトウェアです。構造のエネルギー評価には第一原理計算や分子動力学のソフトウェアを使用します。ここではDocker版のMateriApps LIVE!を用いてRandom SearchでH原子12個とC原子12個の組成から最適な構造を得る計算(ベンゼンの構造が得られることが期待される)を紹介します。構造のエネルギー評価にはMateriApps LIVE!にプレインストールされているQUANTUM ESPRESSOを使います。本記事を書くにあたって、下記のチュートリアルを参考にしました。
https://tomoki-yamashita.github.io/CrySPY_doc/index.html
2. インストール方法
以下のコマンドを実行しインストールします。
pip3 install csp-cryspy
このとき多くのスクリプトが自動的にインストールされます。特にcryspyというスクリプトを使うので以下のコマンドで確認します。
which cryspy
見つからない場合はインストール時のログを参考にして、スクリプトのあるパスをPATHに追加します。
echo 'export PATH=$PATH:/home/user/.local/bin' >> ~/.bashrc
source ~/.bashrc
3. 入力ファイルの用意
CrySPY公式マニュアルにあるベンゼンの入力例をダウンロードし、適当なディレクトリに置きます。ディレクトリの中身は以下のようになっています。
cd qe_benzene_2_RS_mol
tree
.
|-- README
|-- calc_in
| |-- job_cryspy
| |-- pwscf.in_1
| `-- pwscf.in_2
`-- cryspy.in
1 directory, 5 files
cryspy.inの中のジョブコマンドを自分の環境に合わせて書き換えます。ここでは、jobcmd = bashとします。
job_cryspyの中の/path/to/pw.xの部分を自分の環境に合わせて書き換えます。パスが通っていれば単にpw.xとすることができます。
pwscf.in_1, pwscf.in_2の中のpseudo_dirで擬ポテンシャルが置いてあるディレクトリを指定します。ここでは、ホームディレクトリにpseudoというディレクトリを作り、そこに置くことにします。pseudo_dir = '/home/user/pseudo/'とします。
また、擬ポテンシャルを用意します。pwscf.in_1, pwscf.in_2の中ではH.pbe-kjpaw_psl.1.0.0.UPFとC.pbe-n-kjpaw_psl.1.0.0.UPFが指定されているので、QUANTUM ESPRESSOの公式ページから同じものをコピーしてきてpseudo内に置きます。
4. 実行
まず、並列計算のプロセス数を指定します。
export NSLOTS=1
ディレクトリqe_benzene_2_RS_molにいる状態で
cryspy
を実行します。すると、6個の構造が生成されます。再度cryspyを実行すると2個ずつ構造のエネルギー評価が行われます。Done all structures!が出るまでcryspyを繰り返し実行します。
もしくは、cryspyを繰り返し実行するスクリプトを使うと便利です。すべて計算が終了するまで6時間20分かかりました。
5. 結果
dataディレクトリの中のcryspy_rslt_energy_ascを見て結果を確認します。
Spg_num Spg_sym Spg_num_opt Spg_sym_opt E_eV_atom Magmom Opt
0 58 Pnnm 58 Pnnm -133.439385 NaN done
2 71 Immm 71 Immm -133.436956 NaN done
3 136 P4_2/mnm 136 P4_2/mnm -133.436394 NaN done
5 53 Pmna 53 Pmna -133.433717 NaN done
4 136 P4_2/mnm 65 Cmmm -133.429064 NaN done
1 132 P4_2/mcm 132 P4_2/mcm -133.427469 NaN done
構造のデータがエネルギーの低い順に並んでいます。opt_CIFS.cifをVESTAを使って図示してやると、最もエネルギーが低いIDが0のデータは以下の図のようになりました。予想通り、ベンゼンの構造ができていることがわかります。

6. おわりに
ここではランダム探索を行いましたが、進化的アルゴリズム、ベイズ最適化、Look Ahead based on Quadratic Approximation (LAQA)など他の探索法もCrySPYで実行でき、より効率的な探索を行うことができます。