Installation
You need (CrySPY + Python environment + structure optimizer) in your workstation, super computer, etc.
You need (CrySPY + Python environment + structure optimizer) in your workstation, super computer, etc.
You need (CrySPY + Python environment + structure optimizer) in your workstation, super computer, etc.
If you install csp-cryspy with pip, necessary libraries such as PyXtal, pymatgen, and ASE will be installed automatically. Go to Installation > CrySPY for detail.
pip3 install csp-cryspy dscribe physbo
If you install csp-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] How to instlal PyXtal (pyshtools) on arm64 MacOS is figured out. See Arm64 on MacOS (without Rosseta 2)
[2023 March 15]
On MacOS, it is difficult to install PyXtal in the arm64 environment, so it is recommended to use the x86_64 environment with Rosetta 2.
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] If you use PyXtal >= 0.2.9, update CrySPY to the version 0.10.0 or later.
[2021 March 18] There is a breaking change in pymatgen 2022.x.x. CrySPY 0.9.2 and PyXtal 0.2.2 support this change in pymatgen.
[2021 Feb. 5]
PyXtal depends on numba, but numba does not support Python 3.9.
So you should use Python 3.8.x for a while.
[2021 March 18]
Currently numba supports Python 3.9.x.
[2021 Feb. 7]
PyXtal requires SciPy, but the latest version of SciPy (v1.6.0) might include a bug for deepcopy.
You should use SciPy v1.5.4 for a while.
[2021 March 18]
This bug has been fixed in SciPy v1.6.1.
See the old document which is included CrySPY itself.
At least one optimizer is required.
CrySPY have utilized find_wy to generate a random structure for a given space group (symmetry). However, CrySPY employs PyXtal library for structure generation as default since version 0.9.0. You can skip to install find_wy in CrySPY 0.9.0 or later, but you may use find_wy. For CrySPY 0.8.x or earlier, find_wy is required to generate a random structure for a given space group.
You can skip to install find_wy in CrySPY 0.9.0 or later.
First you need compile m_tspace for find_wy. Check these sites to compile it.
Download the source code of m_tspace in an arbitrary directory. For example:
$ mkdir -p ~/local
$ cd ~/local
$ git clone https://github.com/nim-hrkn/m_tspace.git
Additional two files are required to compile m_tspace.
Download the following files in ~/local/m_tspace
from TSPASE:
$ 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
Edit the makefile and run the make command.
If you use ifort
, you had better delete -check all
option and use -O2
option.
$ 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
If you used gfortran
, you might face the following problem:
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
Then change the source file of tsp98.f
like this (line 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)
If you succeed in compiling, you get m_tsp.a
.
Check these sites to compile find_wy:
Download the source code of find_wy in an arbitrary directory. For example:
$ mkdir -p ~/local
$ cd ~/local
$ git clone https://github.com/nim-hrkn/find_wy.git
Edit make.inc
and set the path to the m_tsp.a
that you just prepared.
$ cd find_wy
$ emacs make.inc
$ head -n 4 make.inc
TSPPATH=~/local/m_tspace
#INCPATH = -I $(TSPPATH)
TSP=$(TSPPATH)/m_tsp.a
You can delete -check all
option and use -O2
option.
Then run the make command.
$ make
When you get the executable file of find_wy, run the following command for test:
$ ./find_wy input_sample/input_si4o8.txt
If there is no problem, POS_WY_SKEL_ALL.json
file is generated.
Put the executable file of find_wy
in your PATH. Or, specify the path of the executable file in cryspy.in
as follows:
[structure]
use_find_wy = True
fwpath = /xxx/xxx/xxx/find_wy
When you use find_wy, put the executable file of find_wy in ~/CrySPY_root/CrySPY-x.x.x/CrySPY/find_wy/
, so that the executable file path is ~/CrySPY_root/CrySPY-x.x.x/CrySPY/find_wy/find_wy
.
CrySPY (>= 1.0.0) is available in PyPI. You can install by pip.
pip3 install csp-cryspy
Please note that the name is csp-cryspy on PyPI, not cryspy.
The executable script, cryspy
, is automatically installed in your PATH. You can check by
which cryspy
If you want to change the source code of CrySPY, you can use pip’s editable mode (-e option).
git clone https://github.com/Tomoki-YAMASHITA/CrySPY.git
pip3 install -e ./CrySPY
Instead of git clone, you can download the compressed file from the release page
If you use Bayesian optimization, PHYSBO and DScribe are required.
pip3 install physbo dscribe
cal_fingerprint program and COMBO are obsolete.
CrySPY 1.0.0 or later can be installed by pip.
pip install csp-cryspy
The executable script, cryspy
, is automatically installed in your PATH. You can check by
which cryspy
If you want to change the source code of CrySPY, you can use pip’s editable mode (-e option).
git clone https://github.com/Tomoki-YAMASHITA/CrySPY.git
pip install -e ./CrySPY
Instead of git clone, you can download the compressed file from the release page
cal_fingerprint is a program to calculate structure descriptors and is required if algo is BO. From CrySPY 1.0.0, the cal_fingerprint program is included in CrySPY utility. See Instllation/CrySPY_utility/Compile cal_fingerprint for compilation.
Put the executable file of cal_fingerprint
in your PATH. Or, specify the path of the executable file in cryspy.in
as follows:
[BO]
fppath = /xxx/xxx/xxx/cal_fingerprint
In PyXtal, starting from version 0.6.3, pyshtools is no longer mandatory. Therefore, you can ignore the information written below if you are using a recent version of PyXtal.
conda install pymatgen
conda install pyshtools
pip3 install csp-cryspy
Installation of CrySPY is very simple. Just download it!
You can put the source code of CrySPY in an arbitrary directory.
For example, let us put the source code in ~/CrySPY_root/CrySPY-x.x.x
(x.x.x means the version).
Use git or download the compressed file.
mkdir ~/CrySPY_root
cd ~/CrySPY_root
git clone https://github.com/Tomoki-YAMASHITA/CrySPY.git CrySPY-x.x.x
Download the source as a zip or tar.gz file from
GitHub release
.
Then put the source like ~/CrySPY_root/CrySPY-x.x.x
Directory tree in ~/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/
Main script is cryspy.py
.
When you use find_wy, put the executable file of find_wy in ~/CrySPY_root/CrySPY-x.x.x/CrySPY/find_wy/
, so that the executable file path is ~/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 .
When you use Bayesian optimization, compile cal_fingerpirnt
program which calculates structure descriptors.
cd ~/CrySPY_root/CrySPY-x.x.x/CrySPY/f-fingerprint
emacs Makefile
make
Make sure that the executable file of cal_fingerprint
exists in ~/CrySPY_root/CrySPY-x.x.x/CrySPY/f-fingerprint/
.
Setting up Python environment in your local PC is useful to analyze CrySPY results. Utility tools (jupyter notebook and python scripts) are available for analysis and visualization. Input examples are also included in CrySPY utility.
See also cryspy_utility
You need several Python libraries such as
$ git clone https://github.com/Tomoki-YAMASHITA/CrySPY_utility.git
Go to CrySPY utility and click green Code
button, then choose Download ZIP
.
When you use Bayesian optimization, compile cal_fingerpirnt
program which calculates structure descriptors.
A Fortran compiler is needed.
Install in the environment where CrySPY is used, such as a workstations and supercomputers.
cd CrySPY_utility/f-fingerprint
emacs Makefile
make
See also Instllation/CrySPY.