インストールのサブセクション

動作環境のサブセクション

Python

Python

CrySPY 1.1.0 or later

  • Python >= 3.8
    • PyXtal (>= 0.5.3)
    • (optional) mpi4py
    • (optional, required if algo is BO) COMBO

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.

CrySPY 1.0.0

  • Python >= 3.8
    • PyXtal (>= 0.5.3)
    • (optional, required if algo is BO) COMBO
情報

[2023 April 22] PyXtal (pyshtools)をarm64のMacOSにインストールする方法がわかった.Arm64 on MacOS (without Rosseta 2)を参照.
[2023 March 15] MacOSのarm64環境でのpyxtalのインストールが難しいので,Rosetta 2を使用してx86_64環境での利用が推奨.

CrySPY 0.10.0 – 0.10.3

Tested with Homebrew Python 3.8.x and 3.9.x on Mac and Python 3.8.x on Linux.

CrySPY 0.9.2

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 0.9.0 – 0.9.1

CrySPY 0.8.0 or earlier

CrySPY本体に同梱されている古いドキュメントを見ること.

構造最適化ソフト

構造最適化ソフト

少なくとも1つは必要.

find_wy (オプション)

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

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のサイトをチェックすること:

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などのファイルが生成される.

find_wyの実行ファイル

CrySPY 1.0.0 or later

PATHが通ったところにfind_wyの実行ファイルを置く.もしくは下記のようにcryspy.inで実行ファイルのpathを指定する.

[structure]
use_find_wy = True
fwpath = /xxx/xxx/xxx/find_wy

CrySPY 0.10.3 or earlier

CrySPYでfind_wyを構造生成に用いる場合は所定の位置にfind_wyの実行ファイルを置いておく必要がるので,CrySPY本体をダウンロード後にfind_wyの実行ファイルをコピーしておく.CrySPYは任意のディレクトリに設置できるので,例えば~/CrySPY_root/CrySPY-x.x.x/CrySPY/find_wy/find_wy

CrySPYのサブセクション

CrySPY 1.0.0 or later

CrySPY

pip

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 (optional)

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

Arm64 on MacOS (without Rosseta 2)

情報

PyXtalではversion 0.6.3からpyshtoolsが必須ではなくなったので,最近のバージョンのpyxtalを使う場合は以下に書いてあることは無視して良い

  1. miniforge3をインストール(homebrew pythonでpyshtoolsをインストールする方法が今のところ不明)
  2. condaでpymatgen,pyshtoolsをインストール(最近のバージョンのpyshtoolsはconda-forgeからインストール可能になった)
conda install pymatgen
conda install pyshtools
  1. CrySPYをインストール
pip3 install csp-cryspy

CrySPY 0.10.3 or earlier

CrySPYのインストールはシンプルで,ダウンロードするだけで良い.

ダウンロード

CrySPYは任意の場所に置いて良い.ここでは例として~/CrySPY_root/CrySPY-x.x.x (x.x.x はバージョン番号)にダウンロードすることにする. gitコマンドを使うか,リリースページから圧縮ファイルをダウンロードする.

Git

mkdir ~/CrySPY_root
cd ~/CrySPY_root
git clone https://github.com/Tomoki-YAMASHITA/CrySPY.git CrySPY-x.x.x

zip or tar.gz file

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を使う時は,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_fingerprintのコンパイル (オプション)

ベイズ最適化を使う場合は,構造の記述子を計算するためのプログラムであるcal_fingerpirntをコンパイルする必要がある.

cd ~/CrySPY_root/x.x.x/CrySPY/f-fingerprint
emacs Makefile
make

cal_fingerprintの実行ファイルが例えば~/CrySPY_root/x.x.x/CrySPY/f-fingerprint/以下にあるようにする. コンパイルすれば自動的にそうなるはず.

CrySPYユーティリティ (オプション)

ローカルPCにPython環境を構築しておくと,計算結果の解析および可視化を行うのに便利である. jupyter notebookやPythonスクリプトなどのユーティリティツールが利用できる. 入力ファイルのexamplesもCrySPYユーティリティに含まれている.

情報

ユーティリティツールを使うには以下のライブラリ等が必要になる.

ユーティリティツールのダウンロード

Git

$ git clone https://github.com/Tomoki-YAMASHITA/CrySPY_utility.git

zip

CrySPY utilityへ飛んで,緑のCodeと書かれたボタンをクリック,Download ZIPを選んでダウンロード.

Compile cal_fingerprint

ベイズ最適化を使うときは構造記述子を計算するためのcal_fingerpirntプログラムをコンパイルする. Fortranコンパイラが必要になる. ワークステーションやスパコンなどのCrySPYを用いる環境にインストールする.

cd CrySPY_utility/f-fingerprint
emacs Makefile
make

実行ファイルの扱いに関してはInstallation/CrySPYも参照.