初期構造の読み込み

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

あらかじめ用意した構造を,探索の初期構造として使用できる. cryspy.inの[option]セクションでload_struc_flag = Trueを指定すると,初回起動時に./data/pkl_data/init_struc_data.pklを読み込む.デフォルトはFalse. 必要な構造数に満たない場合は,不足分をランダム生成で補完する.

使い方

[option]
load_struc_flag = True

cifファイル3つからデータを作成して読み込む手順は,チュートリアル > 初期構造の読み込みを参照. 構造ファイルからinit_struc_data.pklへの変換には,CrySPY Utilityのpos2pkl.pyを使用できる.

読み込み時のチェック

読み込み時には以下の条件を確認する.条件を満たさない場合はエラーになり,初期化を停止する.

  • init_struc_data.pklのデータが辞書であること.
  • 構造IDが整数の0から始まる連番であること.例えば,3構造なら0,1,2.
  • 各構造データがpymatgenのStructureであること.
  • 構造数が以下の上限を超えないこと.
アルゴリズム構造数の上限
EA,EA-vcn_pop
RS,BO,LAQAtot_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に保存する.