分子結晶の構造予測

最終更新日:2026年10月16日

情報

CrySPYの基本的な使い方については,はじめにチュートリアル > ランダムサーチ(RS)を参照.

ここでは,分子結晶の構造生成のみを扱う. 本ページでは,構造生成の際に分子や原子団をユニットとして配置する結晶を「分子結晶」と呼ぶ.Li3PS4の例のように,単原子や多原子イオンをユニットとして扱う場合も含む.

バージョン0.9.0以降では,PyXtalを用いた分子結晶のランダム構造生成が可能.

PyXtalのデータベースに登録された分子を使用するか,分子構造を定義したファイルを用意する. PyXtalの分子データについては,PyXtalのドキュメントを参照.

登録済みの分子

PyXtalに登録された分子には,C60,H2O,CH4,NH3,benzene,naphthalene,anthracene,tetracene,pentacene,coumarin,resorcinol,benzamide,aspirin,ddt,lindane,glycine,glucose,ROYがある.

ここでは,ベンゼン分子2個からなる分子結晶の構造を生成する.

作業ディレクトリに移動し,以下のいずれかの方法で入力ファイルの例を用意する.

  • CrySPY Utility > examples > qe_benzene_2_RS_molからダウンロードする.
  • インストール済みのCrySPY Utilityからコピーする.
  • (バージョン0.10.3以前のみ)cp -r ~/CrySPY_root/CrySPY-0.9.0/example/QE_benzene_2_RS_mol .

cryspy.inを確認する.

$ cat cryspy.in
[basic]
algo = RS
calc_code = QE
tot_struc = 6
nstage = 2
njob = 2
jobcmd = qsub
jobfile = job_cryspy

[structure]
struc_mode = mol
atype = H C
nat = 12 12
mol_file = benzene
nmol = 2

[QE]
qe_infile = pwscf.in
qe_outfile = pwscf.out
kppvol = 40  60

[option]
rslt_out = always

分子結晶の構造生成では,[structure]セクションでstruc_mode = molを指定する. 使用する分子と分子数は,以下のように指定する.

  • mol_file = benzene
  • nmol = 2

v1.5.0でtimeout_molは削除された.

CrySPYを実行し,初期構造(./data/init_POSCARS)を確認する.

ユーザー定義の分子

作業ディレクトリに移動し,Li3PS4の2化学式単位分の入力ファイルの例をコピーする.

  • バージョン1.0.0以降
    • CrySPY Utilityからコピーする.
  • バージョン0.10.3以前
    • cp -r ~/CrySPY_root/CrySPY-0.9.0/example/QE_Li3PS4_2fu_RS_mol .
$ cd QE_Li3PS4_2fu_RS_mol
$ ls
Li.xyz  PS4.xyz  calc_in/  cryspy.in

LiとPS4の分子ファイルが含まれている.PyXtalでは,.xyz,.gjf,.g03,.g09,.com,.inp,.out形式,およびpymatgenの分子データをJSON形式で保存したファイルを使用できる.

$ cat Li.xyz
1
New structure
 Li  0.000  0.000  0.000
$ cat PS4.xyz
5
New structure
 P    0.000000    0.000000    0.000000
 S    1.200000    1.200000   -1.200000
 S    1.200000   -1.200000    1.200000
 S   -1.200000    1.200000    1.200000
 S   -1.200000   -1.200000   -1.200000

cryspy.inを確認する.

$ cat cryspy.in
[basic]
algo = RS
calc_code = QE
tot_struc = 4
nstage = 2
njob = 1
jobcmd = qsub
jobfile = job_cryspy

[structure]
struc_mode = mol
atype = Li P S
nat = 6 2 8
mol_file = ./Li.xyz  ./PS4.xyz
nmol = 6 2

[QE]
qe_infile = pwscf.in
qe_outfile = pwscf.out
kppvol = 40  60

[option]
rslt_out = always

分子結晶の構造生成モードでは,単一の原子(この例ではLi原子)も1つの分子として扱う. この例では,以下の指定により,Li原子6個とPS4分子2個からなる分子結晶のランダム構造を生成する.

  • mol_file = ./Li.xyz ./PS4.xyz
  • nmol = 6 2

mol_fileには,cryspy.inがあるディレクトリからの相対パスを指定する. この例では,分子ファイルをcryspy.inと同じディレクトリに置いている.

CrySPYを実行し,初期構造(./data/init_POSCARS)を確認する.

セル体積

cryspy.inのvol_factorで体積スケーリング係数を指定できる. デフォルトは1.1.正の数値を1つ指定する. 例えば,係数を1.5にする場合は以下のように記述する.

struc_mode = mol
atype = Li P S
nat = 6 2 8
mol_file = ./Li.xyz  ./PS4.xyz
nmol = 6 2
vol_factor = 1.5