インストール
ワークステーションやスーパーコンピュータなどに (CrySPY + Python環境 + 構造最適化ソフト) が必要.
ワークステーションやスーパーコンピュータなどに (CrySPY + Python環境 + 構造最適化ソフト) が必要.
実際に構造最適化を行うワークステーションやスーパーコンピュータなどに下記環境をインストールする必要がある.
pipでcsp-cryspyをインストールすると,必須ライブラリのPyXtal,pymatgen,ASEなどは自動的にインストールされる. インストールの詳細はこちら Installation > CrySPY.
pip3 install csp-cryspy dscribe physbo
If you install cryspy with pip, necessary libraries such as PyXtal will be installed automatically. Go to Installation > CrySPY. Manual installation of COMBO is required when using Bayesian optimization.
[2023 April 22] PyXtal (pyshtools)をarm64のMacOSにインストールする方法がわかった.Arm64 on MacOS (without Rosseta 2)を参照.
[2023 March 15]
MacOSのarm64環境でのpyxtalのインストールが難しいので,Rosetta 2を使用してx86_64環境での利用が推奨.
Tested with Homebrew Python 3.8.x and 3.9.x on Mac and Python 3.8.x on Linux.
Tested with Homebrew Python 3.8.x and 3.9.x on Mac and Python 3.8.x on Linux.
[2021 July 15] PyXtal 0.2.9以上を使う場合は,CrySPYを0.10.0以上にアップデートすること.
[2021 March 18] pymatgen 2022.x.x.でbreaking changeがあって,importの書き方等が変わった. CrySPY 0.9.2とPyXtal 0.2.2はpymatgen 2022をサポート.
[2021 Feb. 5]
PyXtalを使うにはnumbaが必要だが,numbaは現在のところPython 3.9に対応していないのでしばらくはPython 3.9ではなくPython 3.8を利用する.
[2021 March 18]
numbaがPython 3.9.xをサポート.CrySPYもPython 3.9で動作可能
[2021 Feb. 7]
PyXtalではSciPyが使われているが, 最新のSciPy(v1.6.0)ではdeepcopyを使うとバグが出る.
SciPyはv1.5.4を利用する.
[2021 March 18] 上記バグはSciPy 1.6.1で修正された.
CrySPY本体に同梱されている古いドキュメントを見ること.
少なくとも1つは必要.
CrySPYではこれまで,任意の空間群(対称性)持つ構造を生成するためにfind_wyを利用してきた.しかし,CrySPY 0.9.0からはデフォルトではPyXtalライブラリを採用している. CrySPY 0.9.0 以上で構造生成にPyXtalを使う場合は,find_wyのインストールはスキップできる. 従来通りfind_wyを利用することももちろん可能である. CrySPY 0.8.0 以前のものでは,空間群を考慮した構造生成にはfind_wyのインストールが必要となる.
CrySPY 0.9.0 以上ではfind_wyのインストールはスキップできる.
find_wyをコンパイルするためには,まずはm_tspaceをコンパイルして,ライブラリを生成する必要がある.詳細は以下のm_tspaceのサイトを参照すること.
m_tspace のソースをgitでダウンロードしてくる.ダウンロード先は例えば
$ mkdir -p ~/local
$ cd ~/local
$ git clone https://github.com/nim-hrkn/m_tspace.git
m_tspace のコンパイルにはさらに二つのファイルが必要となる.
TSPASE
から下記ファイルを~/local/m_tspace
にダウンロードする:
$ cd m_tspace
$ wget http://phoenix.mp.es.osaka-u.ac.jp/~tspace/tspace_main/tsp07/tsp98.f
$ wget http://phoenix.mp.es.osaka-u.ac.jp/~tspace/tspace_main/tsp07/prmtsp.f
makefileをコンパイラに合わせて編集して,makeする.
コンパイラにifort
を使う場合は,-check all
オプションを消さないとうまく動かない.また-O2
オプションを設定する.
$ emacs makefile
$ head -n 4 makefile
#FC=gfortran
#FFLAGS=-g -cpp -DUSE_GEN -ffixed-line-length-255
FC=ifort
FFLAGS=-O2 -g -traceback -cpp -DUSE_GEN -132
$ make
gfortran
を使う場合は,以下のようなエラーに遭遇するかもしれない.
tsp98.f:9839:32:
CALL SUBGRP(MG,JG,MGT,JGT,NTAB,IND)
1
Error: Actual argument contains too few elements for dummy argument 'ntab' (12/48) at (1)
make: *** [tsp98.o] Error 1
その時はtsp98.f
を以下のように書き換える(9925行目):
Before:
9913: C SUBROUTINE SUBGRP ====*====3====*====4====*====5====*====6====*====7
9914: C
9915: C IF (JG(I),I=1,MG) IS A SUBGROUP OF (JGT(J),J=1,MGT) THEN
9916: C TABLE (NTAB(I),I=1,MG) IS MADE HERE AND IND=0
9917: C ELSE
9918: C IND=-1
9919: C
9920: C 1993/12/25
9921: C BY S.TANAKA AND A. YANASE
9922: C---*----1----*----2----*----3----*----4----*----5----*----6----*----7
9923: C
9924: SUBROUTINE SUBGRP(MG,JG,MGT,JGT,NTAB,IND)
9925: DIMENSION NTAB(48),JG(48),JGT(48)
After:
9913: C SUBROUTINE SUBGRP ====*====3====*====4====*====5====*====6====*====7
9914: C
9915: C IF (JG(I),I=1,MG) IS A SUBGROUP OF (JGT(J),J=1,MGT) THEN
9916: C TABLE (NTAB(I),I=1,MG) IS MADE HERE AND IND=0
9917: C ELSE
9918: C IND=-1
9919: C
9920: C 1993/12/25
9921: C BY S.TANAKA AND A. YANASE
9922: C---*----1----*----2----*----3----*----4----*----5----*----6----*----7
9923: C
9924: SUBROUTINE SUBGRP(MG,JG,MGT,JGT,NTAB,IND)
9925: DIMENSION NTAB(12),JG(48),JGT(48)
コンパイルに成功すればm_tsp.a
というライブラリができる.
詳細はfind_wyのサイトをチェックすること:
find_wyのソースをgitでクローンしてくる.例えば:
$ mkdir -p ~/local
$ cd ~/local
$ git clone https://github.com/nim-hrkn/find_wy.git
make.inc
を編集して,先ほど用意したm_tsp.a
のパスを設定する.
$ cd find_wy
$ emacs make.inc
$ head -n 4 make.inc
TSPPATH=~/local/m_tspace
#INCPATH = -I $(TSPPATH)
TSP=$(TSPPATH)/m_tsp.a
ここでも-check all
を削除して-O2
オプションを付けた方が良い.
準備できたらmake
する.
$ make
コンパイルできてfind_wyの実行ファイルが得られたら,実行してテストする.
$ ./find_wy input_sample/input_si4o8.txt
問題なければPOS_WY_SKEL_ALL.json
などのファイルが生成される.
PATHが通ったところにfind_wyの実行ファイルを置く.もしくは下記のようにcryspy.in
で実行ファイルのpathを指定する.
[structure]
use_find_wy = True
fwpath = /xxx/xxx/xxx/find_wy
CrySPYでfind_wyを構造生成に用いる場合は所定の位置にfind_wyの実行ファイルを置いておく必要がるので,CrySPY本体をダウンロード後にfind_wyの実行ファイルをコピーしておく.CrySPYは任意のディレクトリに設置できるので,例えば~/CrySPY_root/CrySPY-x.x.x/CrySPY/find_wy/find_wy
.
CrySPY (>= 1.0.0) is available in PyPI. You can install by pip.
pip install csp-cryspy
PyPIではcryspyではなく,csp-cryspyという名前なので注意.
pipでインストールすると,実行スクリプトのcryspy
が自動的にPATHが通ったところにインストールされる.
下記コマンドでチェックできる.
which cryspy
CrySPYのソースコードを編集したい時は,pipの編集可能モード(-e オプション)を使うのが便利.
git clone https://github.com/Tomoki-YAMASHITA/CrySPY.git
pip install -e ./CrySPY
git cloneの代わりに,release pageから圧縮ファイルをダウンロードしてもよい.
ベイズ最適化を使う場合は, PHYSBOと DScribeが必要.
pip3 install physbo dscribe
cal_fingerprint program and COMBO are obsolete.
CrySPY 1.0.0以降はpipを使ってインストール可能になった.
pip install csp-cryspy
pipでインストールすると,実行スクリプトのcryspy
が自動的にPATHが通ったところにインストールされる.
下記コマンドでチェックできる.
which cryspy
CrySPYのソースコードを編集したい時は,pipの編集可能モード(-e オプション)を使うのが便利.
git clone https://github.com/Tomoki-YAMASHITA/CrySPY.git
pip install -e ./CrySPY
git cloneの代わりに,release pageから圧縮ファイルをダウンロードしてもよい.
cal_fingerprintプログラムは構造記述子を計算するためのもので,アルゴリズにベイズ最適化を使う場合は必須. CrySPY 1.0.0からはcal_fingerprintプログラムはCrySPY utilityに含まれている. コンパイルについてはこちらを参照:Instllation/CrySPY_utility/Compile cal_fingerprint.
実行ファイルcal_fingerprint
をPATHが通ったところに置く,もしくは下記のようにcryspy.in
で実行ファイルのpathを指定する.
[BO]
fppath = /xxx/xxx/xxx/cal_fingerprint
PyXtalではversion 0.6.3からpyshtoolsが必須ではなくなったので,最近のバージョンのpyxtalを使う場合は以下に書いてあることは無視して良い
conda install pymatgen
conda install pyshtools
pip3 install csp-cryspy
CrySPYのインストールはシンプルで,ダウンロードするだけで良い.
CrySPYは任意の場所に置いて良い.ここでは例として~/CrySPY_root/CrySPY-x.x.x
(x.x.x はバージョン番号)にダウンロードすることにする.
gitコマンドを使うか,リリースページから圧縮ファイルをダウンロードする.
mkdir ~/CrySPY_root
cd ~/CrySPY_root
git clone https://github.com/Tomoki-YAMASHITA/CrySPY.git CrySPY-x.x.x
zip または tar.gz ファイルをここからダウンロードする.
GitHub release
.
ダウンロードして展開したソースを~/CrySPY_root/CrySPY-x.x.x
に置く.
~/CrySPY_root/CrySPY-x.x.x/
のディレクトリ構成:
CrySPY-x.x.x
├── CHANGELOG.md
├── CrySPY/
│ ├── BO/
│ ├── EA/
│ ├── IO/
│ ├── LAQA/
│ ├── RS/
│ ├── __init__.py
│ ├── calc_dscrpt/
│ ├── f-fingerprint/
│ ├── find_wy/
│ ├── gen_struc/
│ ├── interface/
│ ├── job/
│ └── start/
│ └── utility.py
├── LICENSE
├── README.md
├── cryspy.py
├── docs/
├── example/
└── utility/
cryspy.py
がメインスクリプト.
find_wyを使う時は,find_wyの実行ファイルを(例えば)~/CrySPY_root/CrySPY-x.x.x/CrySPY/find_wy/
以下に置く必要がある.
つまり~/CrySPY_root/CrySPY-x.x.x/CrySPY/find_wy/find_wy
.
cd ~/CrySPY_root/CrySPY-x.x.x/CrySPY/find_wy
cp ~/local/find_wy/find_wy .
ベイズ最適化を使う場合は,構造の記述子を計算するためのプログラムであるcal_fingerpirnt
をコンパイルする必要がある.
cd ~/CrySPY_root/x.x.x/CrySPY/f-fingerprint
emacs Makefile
make
cal_fingerprint
の実行ファイルが例えば~/CrySPY_root/x.x.x/CrySPY/f-fingerprint/
以下にあるようにする.
コンパイルすれば自動的にそうなるはず.
ローカルPCにPython環境を構築しておくと,計算結果の解析および可視化を行うのに便利である. jupyter notebookやPythonスクリプトなどのユーティリティツールが利用できる. 入力ファイルのexamplesもCrySPYユーティリティに含まれている.
See also cryspy_utility
ユーティリティツールを使うには以下のライブラリ等が必要になる.
$ git clone https://github.com/Tomoki-YAMASHITA/CrySPY_utility.git
CrySPY utilityへ飛んで,緑のCode
と書かれたボタンをクリック,Download ZIP
を選んでダウンロード.
ベイズ最適化を使うときは構造記述子を計算するためのcal_fingerpirnt
プログラムをコンパイルする.
Fortranコンパイラが必要になる.
ワークステーションやスパコンなどのCrySPYを用いる環境にインストールする.
cd CrySPY_utility/f-fingerprint
emacs Makefile
make
実行ファイルの扱いに関してはInstallation/CrySPYも参照.