初期構造の読み込み
最終更新日:2026年10月16日
あらかじめ用意した構造を,探索の初期構造として使用できる.
cryspy.inの[option]セクションでload_struc_flag = Trueを指定すると,初回起動時に./data/pkl_data/init_struc_data.pklを読み込む.デフォルトはFalse.
必要な構造数に満たない場合は,不足分をランダム生成で補完する.
使い方
cifファイル3つからデータを作成して読み込む手順は,チュートリアル > 初期構造の読み込みを参照.
構造ファイルからinit_struc_data.pklへの変換には,CrySPY Utilityのpos2pkl.pyを使用できる.
読み込み時のチェック
読み込み時には以下の条件を確認する.条件を満たさない場合はエラーになり,初期化を停止する.
init_struc_data.pklのデータが辞書であること.- 構造IDが整数の
0から始まる連番であること.例えば,3構造なら0,1,2. - 各構造データがpymatgenの
Structureであること. - 構造数が以下の上限を超えないこと.
| アルゴリズム | 構造数の上限 |
|---|---|
| EA,EA-vc | n_pop |
| RS,BO,LAQA | tot_struc |
データ形式の詳細はデータフォーマット > 初期構造と最適化後の構造データを参照.
原子種・原子数・組成のチェック
RS,BO,LAQA,EAでは,原子種と各原子種の原子数がatypeとnatの設定に一致する必要がある.同じ組成比でも,原子数が異なる構造は使用できない.
EA-vcでは,以下の条件を確認する.
| 項目 | 条件 |
|---|---|
| 原子種 | atype以外の原子種を含まない. |
| 原子数 | 各原子種の原子数がll_natからul_natまでの範囲内にあり,構造全体で1個以上の原子を含む. |
| 組成制限 | min_compやmax_compを指定した場合は,その組成範囲を満たす. |
| 電荷中性条件 | chargeを指定した場合は,指定した価数の組合せで電荷中性条件を満たせる. |
組成制限と電荷中性条件の詳細は,組成制限および電荷中性条件を参照.
読み込み時には,mindistや空間群,セル体積の制限はチェックしない.
不足分の補完
読み込んだ構造数がtot_strucまたはn_popに満たない場合は,不足分をランダム生成する.
追加する構造には,読み込んだ構造の最後のIDに続く連番が付く.
読み込んだ構造と補完された構造を合わせて,./data/pkl_data/init_struc_data.pklと./data/init_POSCARSに保存する.