入力ファイル
入力ファイルcryspy.inの解説.
入力ファイルcryspy.inの解説.
CrySPYはconfigparserモジュールを用いて,入力ファイルcryspy.inを読み込む.
cryspy.inは複数のセクションから構成され,各セクションは[section]で始まり,その下にname = valueまたはname : valueの形式でパラメータを記述する.
セクション名と値は大文字・小文字を区別するが,パラメータ名は区別しない.
#または;で始まる行は読み込み時に無視され,コメントとして使用できる.
真偽値(bool)は,1,yes,true,onがTrue,0,no,false,offがFalseとして読み込まれる.
真偽値を表す文字列では,大文字・小文字を区別しない.
一部のパラメータでは,複数の値を空白区切りで指定する.
詳細はconfigparserのドキュメントを参照.
セクション名:大文字・小文字を区別する.
パラメータ名:大文字・小文字を区別しない.
値:真偽値(bool)を除き,大文字・小文字を区別する.
2025年3月6日 更新
| Name | Value | Default | Description |
|---|---|---|---|
algo | RS, EA, EA-vc, BO, LAQA | アルゴリズム | |
calc_code | VASP, QE, OMX, soiap, LAMMPS, ASE | 構造最適化の計算コード | |
tot_struc | int | 構造数.EAやEA-vcの場合は使用されない. | |
nstage | int | ステージ数 | |
njob | int | 同時に投入するジョブの数 | |
jobcmd | str | ジョブを投入するコマンド,例えばqsubやsbatch | |
jobfile | str | ジョブファイルのファイル名 |
最終更新日:2026年10月16日
| Name | Value | Default | Description |
|---|---|---|---|
struc_mode | crystal, mol, mol_bs | crystal | 構造生成モード |
atype | atomic symbol [atomic symbol …] | 原子種. e.g. atype = Na Cl. | |
nat | int [int …] | 原子種に応じた原子数. e.g. nat = 8 8. EA-vcでは使用されない. | |
mindist (mindist_?) | float [float …] | None | 最小原子間距離の制限 [Å].詳細は機能 > 原子間距離の制限を参照. |
mindist_factor | float | 1.0 | mindistのスケーリング係数 |
vol_factor | float | 1.1 | 体積スケーリング係数 |
vol_mu | float | None | セル体積を正規分布から決める場合の平均 [ų].指定する場合はvol_sigmaも必須. |
vol_sigma | float | None | vol_muと併用する,セル体積の正規分布の標準偏差 [ų]. |
symprec | float | 0.01 | 対称性を見つける際の精度 |
spgnum | all, space group number, 0 | all | 空間群の制限.allであれば1–230の全て.0であれば空間群情報のない(対称性のない)ランダム構造生成 |
use_find_wy | bool | False | find_wyを使用して構造生成する際のオプション |
algo = EA-vcの場合
| Name | Value | Default | Description |
|---|---|---|---|
ll_nat | int [int …] | natの下限.例:ll_nat = 0 0. | |
ul_nat | int [int …] | natの上限.例:ul_nat = 8 8. | |
charge | int or grouped ints | None | 電荷中性条件を課すための各原子種の電荷.atypeと同じ順序で指定する.例:NaClではcharge = 1 -1.v1.5.0以降は,多価の原子種について複数の価数を丸括弧または角括弧でまとめて指定できる.例:atype = Fe Oに対してcharge = (2 3) -2.詳細は電荷中性条件を参照. |
cn_mode | auto, enumerate, sample | auto | (since version 1.5.0) chargeを指定した場合のみ有効.電荷中性条件を満たす原子数の組み合わせを計算するモード. |
max_cn_grid_points | int | 200_000_000 | (since version 1.5.0) chargeを指定した場合のみ有効.cn_mode = autoまたはenumerateで,電荷中性条件を使って原子数の変数を1つ消去した後,残りの変数を総当たりで調べる組合せ数の上限.この値を超える場合,autoではサンプリングに切り替わり,enumerateではエラーになる.多価の場合の数え方を含め,詳細は電荷中性条件を参照. |
min_comp | float [float …] | None | (since version 1.5.0) 組成制限を課したい時に使用.各原子種の0から1に正規化された組成の下限.atypeと同じ順序・要素数で指定する.max_compのみを指定した場合は,全原子種について0.0に補完される. |
max_comp | float [float …] | None | (since version 1.5.0) 組成制限を課したい時に使用.各原子種の0から1に正規化された組成の上限.atypeと同じ順序・要素数で指定する.min_compのみを指定した場合は,全原子種について1.0に補完される. |
struc_modeがmolまたはmol_bsの場合
EAおよびEA-vcでは,分子結晶の構造生成(struc_mode = mol,mol_bs)は未対応.
| Name | Value | Default | Description |
|---|---|---|---|
mol_file | str [str …] | 分子ファイルのパス,または分子名. | |
nmol | int [int …] | 分子数. | |
timeout_mol | float | None | (removed in version 1.5.0) 分子構造生成のタイムアウト時間. |
rot_mol | random, random_mol, random_wyckoff | random_wyckoff | mol_bsの場合のみ使用.分子の回転モード. |
nrot | int | 20 | mol_bsの場合のみ使用.分子を回転させる試行回数の上限. |
mindist_mol_bs (mindist_mol_bs_?) | float [float …] | None | mol_bsの場合のみ使用.最小分子間距離の制限 [Å]. |
mindist_mol_bs_factor | float | 1.0 | mol_bsの場合のみ使用.mindist_mol_bsのスケーリング係数. |
use_find_wy = Trueまたはspgnum = 0の場合
| Name | Value | Default | Description |
|---|---|---|---|
fwpath | str | None | find_wyを使用する場合のみ有効.find_wyの実行ファイルのパス.Noneの場合は$PATHから自動的に探す. |
minlen | float | find_wyを使用する場合,またはspgnum = 0の場合のみ有効.格子ベクトルの長さの下限 [Å]. | |
maxlen | float | find_wyを使用する場合,またはspgnum = 0の場合のみ有効.格子ベクトルの長さの上限 [Å]. | |
dangle | float | find_wyを使用する場合,またはspgnum = 0の場合のみ有効.格子角α,β,γの変化幅 [°]. | |
maxcnt | int | 50 | find_wyを使用する場合,またはspgnum = 0の場合のみ有効.原子位置を決める試行回数の上限. |
2026年10月12日 更新
VASPを使う場合は(calc_code = VASP)[VASP]セクションが必要になる.
| Name | Value | Default | Description |
|---|---|---|---|
kppvol | int [int …] | 各ステージのk点グリッド密度の目安(逆格子空間の体積1 Å⁻³あたりのk点数). | |
force_gamma | bool | False | Trueなら常にガンマ点を通るメッシュを使う. |
vasp_MAGMOM | float [float …] | None | EA-vcの時のみ使用.各元素に対応するMAGMOMの値. |
vasp_LDAUL | int [int …] | None | EA-vcの時のみ使用.各元素に対応するLDAULの値. |
vasp_LDAUU | float [float …] | None | EA-vcの時のみ使用.各元素に対応するLDAUUの値. |
vasp_LDAUJ | float [float …] | None | EA-vcの時のみ使用.各元素に対応するLDAUJの値. |
QEを使う場合(calc_code = QE)は,[QE]セクションが必要.
| Name | Value | Default | Description |
|---|---|---|---|
kppvol | int [int …] | 各ステージのk点グリッド密度の目安(逆格子空間の体積1 Å⁻³あたりのk点数). | |
qe_infile | str | QEの入力ファイル名. | |
qe_outfile | str | QEの出力ファイル名. | |
pv_term | bool | False | Trueなら,全エネルギーの代わりにエンタルピーを読み込む. |
OpenMXを使う場合(calc_code = OMX)は,[OMX]セクションが必要.
| Name | Value | Default | Description |
|---|---|---|---|
kppvol | int [int …] | 各ステージのk点グリッド密度の目安(逆格子空間の体積1 Å⁻³あたりのk点数). | |
OMX_infile | str | OpenMXの入力ファイル名. | |
OMX_outfile | str | OpenMXの出力ファイル名. | |
ValenceElectrons | str float float [str float float …] | 各原子種のアップスピン・ダウンスピンの初期電子数. |
NaClでの指定例:ValenceElectrons = Na 4.5 4.5 Cl 3.5 3.5.
soiapを使う場合(calc_code = soiap)は,[soiap]セクションが必要.
| Name | Value | Default | Description |
|---|---|---|---|
soiap_infile | str | soiapの入力ファイル名. | |
soiap_outfile | str | soiapの出力ファイル名. | |
soiap_cif | str | soiapの初期構造ファイル名(CIF形式). |
LAMMPSを使う場合(calc_code = LAMMPS)は,[LAMMPS]セクションが必要.
| Name | Value | Default | Description |
|---|---|---|---|
lammps_infile | str | LAMMPSの入力ファイル名. | |
lammps_outfile | str | LAMMPSの出力ファイル名. | |
lammps_potential | str [str …], None | None | ポテンシャルファイル名. |
lammps_data | str | LAMMPSのデータファイル名. |
ASEを使う場合(calc_code = ASE)は,[ASE]セクションが必要.
| Name | Value | Default | Description |
|---|---|---|---|
ase_python | str | ASEの入力ファイル名. |
2026年10月12日 更新
[option]セクションでappend_struc_ea = Trueを指定する場合,[EA]セクションが必要.| Name | Value | Default | Description |
|---|---|---|---|
n_pop | int | 個体群の数(個体群の数も参照). | |
n_crsov | int | crossoverで生成する子個体の数. | |
n_perm | int | permutationで生成する子個体の数. | |
n_strain | int | strainで生成する子個体の数. | |
n_rand | int | ランダム生成する構造の数. | |
n_elite | int | エリート個体の数(自然選択も参照). | |
fit_reverse | bool | False | Falseなら最小値を探索する(適応度の評価も参照). |
n_fittest | int | 0 | 自然選択で残す個体の数.0なら全個体を残す. |
slct_func | TNM, RLT | 親個体の選択に用いる手法. | |
t_size | int | 3 | トーナメントサイズ.slct_func = TNMの場合のみ使用(トーナメント選択も参照). |
a_rlt | float | 10.0 | 線形スケーリングのパラメータ.slct_func = RLTの場合のみ使用(ルーレット選択も参照). |
b_rlt | float | 1.0 | 線形スケーリングのパラメータ.slct_func = RLTの場合のみ使用(ルーレット選択も参照). |
crs_lat | equal, random | random | 格子ベクトルの混合方法(crossover > 5. 切断された半分を交換も参照). |
nat_diff_tole | int | 4 | crossoverでの原子数の差の許容値(crossover > 6. 原子数の多い子構造を選択も参照). |
ntimes | int | 1 | permutationを行う回数. |
sigma_st | float | 0.5 | strainの標準偏差. |
maxcnt_ea | int | 50 | EAでの試行回数の上限. |
max_parent_attempts | int | 50 | (since version 1.5.0) EAで子個体1つを生成する際の親選択の試行回数の上限.最初の親選択も含む. |
maxgen_ea | int | 0 | 世代数の上限.0なら上限なし. |
emax_ea | float | None | 自然選択におけるエネルギーの上限 [eV/atom]. |
emin_ea | float | None | 自然選択におけるエネルギーの下限 [eV/atom]. |
emax_eaとemin_eaは凸包の計算に使用する.自然選択には使用しない.| Name | Value | Default | Description |
|---|---|---|---|
n_add | int | additionで生成する子個体の数. | |
add_max | int | 5 | (since version 1.4.1) additionで追加する原子数の上限. |
n_elim | int | eliminationで生成する子個体の数. | |
elim_max | int | 5 | (since version 1.4.1) eliminationで削除する原子数の上限. |
n_subs | int | substitutionで生成する子個体の数. | |
subs_max | int | 3 | (since version 1.4.1) substitutionで置換する原子数の上限. |
ref_energies | float [float …] | (since version 1.5.0) 形成エネルギー計算に用いる基準エネルギー [eV/atom].atypeと同じ順序で,各原子種につき1つの値を空白区切りで指定する.括弧やカンマは付けない.値の個数はatypeの原子種数と一致させる. | |
end_point | float [float …] | (deprecated since version 1.5.0) 後方互換性のために残されている.代わりにref_energiesを使用すること.単位・入力書式はref_energiesと同じ. | |
emax_ea | float | None | 凸包の計算に用いるエネルギーの上限 [eV/atom]. |
emin_ea | float | None | 凸包の計算に用いるエネルギーの下限 [eV/atom]. |
cgenはv1.5.0から非推奨.| Name | Value | Default | Description |
|---|---|---|---|
cgen | int | None | (in versions 1.4.1–1.4.3) 何世代目までのデータを描画するかを指定する.Noneなら最新世代まで描画する. |
show_max | float | 0.2 | 凸包の描画におけるy軸の上限(二元系),または凸包からの距離の上限(三元系). |
label_stable | bool | True | 凸包の描画時に安定組成を表示するかどうか. |
vmax | float | 0.2 | 凸包からの距離を表すカラーバーの上限. |
bottom_margin | float | 0.02 | 二元系の凸包を描画する際のy軸の下側の余白. |
fig_format | str | svg | 凸包の画像ファイル形式.svg,png,pdfから指定する. |
2026年10月12日 更新
BOを使う場合(algo = BO)は,[BO]セクションが必要.
| Name | Value | Default | Description |
|---|---|---|---|
nselect_bo | int | 1度の選択で選ばれる構造の数. | |
score | TS, EI, PI | 獲得関数. | |
num_rand_basis | int | 0 | 基底関数の数.0ならガウス過程を使用する. |
cdev | float | 0.001 | 標準化に用いる標準偏差のカットオフ値. |
dscrpt | FP | 構造記述子. | |
max_select_bo | int | 0 | 選択回数の上限. |
manual_select_bo | int [int …] | None | 手動で選択する構造ID. |
emax_bo | float | None | BOにおけるエネルギーの上限. |
emin_bo | float | None | BOにおけるエネルギーの下限. |
dscrpt = FPの場合
CrySPY 1.3.0以降
fppathとfp_rminは廃止.
| Name | Value | Default | Description |
|---|---|---|---|
fp_rmax | float | 8.0 | dscrpt = FPの場合のみ使用.fingerprintにおける距離rのカットオフ上限. |
fp_npoints | int | 20 | dscrpt = FPの場合のみ使用.fingerprintにおける各原子種ペアの離散化点数. |
fp_sigma | float | 0.7 | dscrpt = FPの場合のみ使用.Gaussian smearingの標準偏差 [Å]. |
CrySPY 1.2.5以前
| Name | Value | Default | Description |
|---|---|---|---|
fppath | str | None | dscrpt = FPの場合のみ使用.cal_fingerprintの実行ファイルのパス.Noneの場合は$PATHから自動的に探す. |
fp_rmin | float | 0.5 | dscrpt = FPの場合のみ使用.fingerprintにおける距離rのカットオフ下限. |
fp_rmax | float | 5.0 | dscrpt = FPの場合のみ使用.fingerprintにおける距離rのカットオフ上限. |
fp_npoints | int | 20 | dscrpt = FPの場合のみ使用.fingerprintにおける各原子種ペアの離散化点数. |
fp_sigma | float | 1.0 | dscrpt = FPの場合のみ使用.Gaussian smearingの標準偏差 [Å]. |
LAQA (algo = LAQA)を使う場合,[LAQA]セクションが必要.
| Name | Value | Default | Description |
|---|---|---|---|
nselect_laqa | int | 1度の選択で選ばれる構造の数. | |
wf | float | 0.1 | 力の項の重み. |
ws | float | 10.0 | ストレス項の重み. |
See also Search algorithms > LAQA
algo = LAQAでは[option]セクションの下記の二つは自動的にTrueになる.
原子に働く力とストレスのデータは1ステップごとに収集される.
デフォルトでは,エネルギーと構造データは選択ごとに,各構造の最適化計算が終了した時点で収集・保存される.
1回の選択で進める最適化ステップ数は,各計算コードの入力設定(QEのnstep,VASPのNSWなど)で指定する.チュートリアルでは10ステップに設定している.
エネルギーと構造データも1ステップごとに収集・保存したい場合は,下記の設定を追加すること.
2026年10月12日 更新
[visual]セクションはv1.5.0以降で使用可能.
RS,EA,EA-vc共通のパラメータ.以下も参照.
| Name | Value | Default | Description |
|---|---|---|---|
ymax | float | 0.2 | RS,EAおよび二元系のEA-vcのエネルギープロットにおけるy軸の上限. |
markersize | int | 10 | 全エネルギープロットのマーカーサイズ. |
fig_format | str | svg | 画像ファイル形式.svg,png,pdfから指定する. |
CrySPY > チュートリアル > EA > 解析と可視化も参照.
| Name | Value | Default | Description |
|---|---|---|---|
ref_gen | int | None | [事後解析のみ] 描画の基準となる世代.指定した世代の終了時点の状態を描画する.省略時は最新世代を使用する.plot_max_gen <= ref_genを満たす必要がある. |
plot_min_gen | int | None | [事後解析のみ] 描画対象の世代の下限.省略時は1として扱う. |
plot_max_gen | int | None | [事後解析のみ] 描画対象の世代の上限.省略時は,ref_genが指定されていればその世代まで,指定されていなければ最新世代まで描画する. |
凸包の描画については,CrySPY > チュートリアル > EA-vc > 解析と可視化も参照.
| Name | Value | Default | Description |
|---|---|---|---|
show_max | float | None | 三元系で表示する凸包からの距離の上限. |
label_stable | bool | True | 図に安定組成を表示するかどうか. |
vmax | float | 0.2 | 凸包からの距離を表すカラーバーの上限. |
bottom_margin | float | 0.04 | 二元系のy軸の下側の余白. |
axis_order | str | None | 軸順を指定する.二元系ではlrまたはrl,三元系ではtlrの並べ替え(lrt,rtlなど)を指定する.terminals使用時の軸順はterminal_axis_orderで指定する. |
ref_gen | int | None | [事後解析のみ] 描画の基準となる世代.指定した世代の終了時点の状態を描画する.省略時は最新世代を使用する.plot_max_gen <= ref_genを満たす必要がある. |
plot_min_gen | int | None | [事後解析のみ] 描画対象の世代の下限.省略時は1として扱う. |
plot_max_gen | int | None | [事後解析のみ] 描画対象の世代の上限.省略時は,ref_genが指定されていればその世代まで,指定されていなければ最新世代まで描画する. |
show_comp_window | bool | True | 凸包の図に許容組成範囲を表示するかどうか. |
ref_gen_comp | int | None | [事後解析のみ] 許容組成範囲を重ねて表示する際に,min_compとmax_compを取得する世代.省略時は,ref_genが指定されていればその世代,指定されていなければ最新世代を使用する. |
terminals | str str [str] | None | [事後解析のみ] cryspy-Eplotで化合物相図を構築する際の基準となる2つまたは3つの化合物組成(例:Li2O Al2O3).各化合物組成のデータが相図データに含まれている必要がある. |
terminal_axis_order | str | None | [事後解析のみ] terminals使用時の軸順.terminalsの指定順に,各化合物組成の配置を表す文字を並べる(t:上,l:左,r:右).化合物組成が2つの場合はlrまたはrl,3つの場合はtlrの並べ替え(lrt,rtlなど)を指定する.省略時は2つの場合はlr,3つの場合はtlr. |
最終更新日:2026年10月16日
各*_step_flagの対応コードは,インターフェース > オプション互換性を参照.
| Name | Value | Default | Description |
|---|---|---|---|
rslt_out | always, cycle, off | always | (since version 1.5.0) cryspy_rsltとcryspy_rslt_energy_ascを出力するタイミング.always:各構造の結果を記録するたびに出力.cycle:EA,EA-vcでは各世代終了時,BO,LAQAでは各選択終了時に出力(RSでは出力なし).off:これらのテキストファイルを出力しない.結果のpickleデータはいずれの設定でも保存される. |
check_mindist_opt | bool | True | Trueなら,構造最適化後に最小原子間距離の制限を確認する. |
stop_chkpt | int | 0 | 指定したチェックポイントでCrySPYを停止する. |
load_struc_flag | bool | False | Trueなら./data/pkl_data/init_struc_data.pklから初期構造を読み込む.構造IDは0始まりの連番とする.読み込み数の上限はEA/EA-vcではn_pop,それ以外ではtot_struc.上限を超えるとエラーになり,不足分はランダム生成で補完される.詳細は機能 > 初期構造の読み込みを参照. |
stop_next_struc | bool | False | Trueなら,次の構造のジョブを投入しない.計算中の構造については,次のステージのジョブを投入する. |
backup_interval | int | RS: 0 その他: 1 | (since version 1.5.0) 自動バックアップの間隔.EA,EA-vcでは世代数,BO,LAQAでは選択回数で指定する.0なら自動バックアップを無効にする. |
energy_output_interval | int | 1 | (since version 1.5.0) EAのエネルギープロット,EA-vcの凸包の図と凸包からの距離のファイルを出力する間隔(世代数).0ならこれらの自動出力を無効にする.EA-vcの凸包と凸包からの距離の計算自体は毎世代行われる. |
recalc | int [int …] | None | 再計算,または構造最適化を継続する構造IDを指定する. |
append_struc_ea | bool | False | Trueなら,EAで構造を追加する. |
energy_step_flag | bool | False | Trueなら,各最適化ステップのエネルギーデータを./data/pkl_data/energy_step_data.pklに保存する.QEではpv_term = Trueとenergy_step_flag = Trueの併用不可. |
struc_step_flag | bool | False | Trueなら,各最適化ステップの構造データを./data/pkl_data/struc_step_data.pklに保存する. |
force_step_flag | bool | False | Trueなら,各最適化ステップの原子に働く力のデータを./data/pkl_data/force_step_data.pklに保存する. |
stress_step_flag | bool | False | Trueなら,各最適化ステップのストレスデータを./data/pkl_data/stress_step_data.pklに保存する. |
seed | int | None | (since version 1.5.0) 乱数生成器のシード.0から2**32 - 1までの整数を指定する. |
2024年4月22日
CrySPYではk-pointのセッティングはpymatgenのpymatgen.io.vasp.Kpoints.automatic_density_by_vol関数を使って自動生成している.
以下はcryspy.inでnstage = 2の場合の例:
kppvolは逆格子空間でのÅ${}^{-3} $あたりのグリッド密度.
VASP:hexagonalとface-centeredセルではガンマ点を通るメッシュが使われ,それ以外ではMonkhorst-Packが使われる.
QE and OMX:kメッシュだけ利用,オフセットは設定しない.
下記を参考に.結晶構造の画像はVESTAを使用.
a = b = c = 3.836 Å
| kppvol | k-mesh |
|---|---|
| 0 | [1, 1, 1] |
| 20 | [4, 4, 4] |
| 40 | [6, 6, 6] |
| 60 | [7, 7, 7] |
| 80 | [7, 7, 7] |
| 100 | [8, 8, 8] |
| 120 | [9, 9, 9] |
| 140 | [9, 9, 9] |
| 160 | [9, 9, 9] |
| 180 | [10, 10, 10] |
| 200 | [10, 10, 10] |
| 400 | [13, 13, 13] |
| 600 | [15, 15, 15] |
| 800 | [17, 17, 17] |
a = b = c = 5.431 Å
| kppvol | k-mesh |
|---|---|
| 0 | [1, 1, 1] |
| 20 | [3, 3, 3] |
| 40 | [3, 3, 3] |
| 60 | [4, 4, 4] |
| 80 | [4, 4 ,4] |
| 100 | [5, 5, 5] |
| 120 | [5, 5, 5] |
| 140 | [6, 6, 6] |
| 160 | [6, 6, 6] |
| 180 | [6, 6, 6] |
| 200 | [6, 6, 6] |
| 400 | [8, 8, 8] |
| 600 | [9, 9, 9] |
| 800 | [10, 10, 10] |
a = b = 8.804 Å
c = 12.205 Å
| kppvol | k-mesh |
|---|---|
| 0 | [1, 1, 1] |
| 20 | [1, 1, 1] |
| 40 | [2, 2, 1] |
| 60 | [2, 2, 2] |
| 80 | [3, 3 ,2] |
| 100 | [3, 3, 2] |
| 120 | [3, 3, 2] |
| 140 | [3, 3, 2] |
| 160 | [3, 3, 2] |
| 180 | [4, 4, 2] |
| 200 | [4, 4, 3] |
| 400 | [5, 5, 3] |
| 600 | [6, 6, 4] |
| 800 | [6, 6, 4] |