次世代の生成

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

初回実行

cryspyを実行すると,構造生成モードになり,第一世代のランダム構造が生成されて,一旦プログラムは終了する.

cryspy

出力をみると,ll_natとul_natの範囲の原子数で構造が生成されているのが確認できる.

...
[2026-07-07 15:18:02,548][cryspy_init][INFO] # ---------- Initial structure generation
[2026-07-07 15:18:02,548][rs_gen][INFO] # ------ mindist
[2026-07-07 15:18:02,549][struc_util][INFO] Cu - Cu: 1.32
[2026-07-07 15:18:02,549][struc_util][INFO] Cu - Ag: 1.385
[2026-07-07 15:18:02,549][struc_util][INFO] Cu - Au: 1.34
[2026-07-07 15:18:02,549][struc_util][INFO] Ag - Ag: 1.45
[2026-07-07 15:18:02,549][struc_util][INFO] Ag - Au: 1.405
[2026-07-07 15:18:02,549][struc_util][INFO] Au - Au: 1.36
[2026-07-07 15:18:02,549][rs_gen][INFO] # ------ Generate random structures
[2026-07-07 15:18:02,712][gen_pyxtal][INFO] Structure ID      0: (6, 6, 2) Space group: 196 --> 216 F-43m
[2026-07-07 15:18:02,721][gen_pyxtal][WARNING] Compoisition [7 5 3] not compatible with symmetry 224:     spg = 224 retry.
[2026-07-07 15:18:02,726][gen_pyxtal][WARNING] Compoisition [3 3] not compatible with symmetry 134:     spg = 134 retry.
[2026-07-07 15:18:02,733][gen_pyxtal][WARNING] Compoisition [ 6  4 16] not compatible with symmetry 140:     spg = 140 retry.
[2026-07-07 15:18:02,822][gen_pyxtal][INFO] Structure ID      1: (1, 4, 3) Space group:  23 -->  71 Immm
[2026-07-07 15:18:02,839][gen_pyxtal][INFO] Structure ID      2: (2, 2, 8) Space group: 150 --> 150 P321
...

cryspy.statを見ると,EAでは現在の世代の情報が追加されている.

[status]
generation = 1
id_queueing = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

構造最適化

何度かcryspyを実行して,第一世代の構造最適化を終わらせると,下記のように出力される.

...
[2026-07-07 15:21:18,273][ea_next_gen][INFO] Done generation 1
[2026-07-07 15:21:18,273][ea_next_gen][INFO] Calculate convex hull for generation 1
Ignoring fixed y limits to fulfill fixed data aspect with adjustable data limits.
[2026-07-07 15:21:18,772][ea_next_gen][INFO] 
EA is ready

凸包

この時点で,./data/convex_hull/にhull distanceの情報とconvex hullのグラフが出力されている.

  • hull_dist_all_gen_1
      ID    hull distance (eV/atom)    Num_atom
      14                   0.000000    (0, 1, 3)
       9                   0.088493    (2, 8, 8)
      15                   0.105278    (8, 7, 5)
      10                   0.200962    (8, 0, 7)
       8                   0.210806    (0, 3, 3)
      13                   0.247862    (5, 6, 8)
      19                   0.258563    (6, 6, 1)
       5                   0.261977    (2, 6, 4)
       6                   0.269711    (7, 7, 2)
      18                   0.290792    (1, 6, 6)
      11                   0.292541    (8, 3, 1)
      16                   0.356158    (6, 2, 4)
       2                   0.373888    (2, 2, 8)
       7                   0.514507    (0, 4, 4)
      12                   0.548770    (3, 4, 4)
       1                   0.617685    (1, 4, 3)
       3                   0.761585    (1, 0, 8)
      17                   0.934091    (6, 4, 7)
       4                   0.955053    (2, 8, 4)
       0                   1.019078    (6, 6, 2)
  • conv_hull_gen_1.svg conv_hull_gen_1.svg conv_hull_gen_1.svg

次世代生成

準備ができた状態でもう一度cryspyを実行すると,次世代構造の生成が始まる. デフォルト(backup_interval = 1)では,次世代構造を生成する直前に自動バックアップが実行される. v1.5.0以降は,[option]セクションのbackup_intervalで間隔(世代数)を変更でき,0で自動バックアップを無効にする.詳細は機能 > バックアップを参照.

cryspy
...
[2026-07-07 15:29:32,182][ea_next_gen][INFO] Done generation 1
[2026-07-07 15:29:32,505][utility][INFO] Backup data
[2026-07-07 15:29:32,512][ea_next_gen][INFO] # ---------- Evolutionary algorithm
[2026-07-07 15:29:32,512][ea_next_gen][INFO] Generation 2
[2026-07-07 15:29:32,512][ea_next_gen][INFO] # ------ Apply nat/composition constraints
[2026-07-07 15:29:32,512][ea_next_gen][INFO] Current candidates after constraint filter: 20
[2026-07-07 15:29:32,513][ea_next_gen][INFO] Elite structures after constraint filter: 0
[2026-07-07 15:29:32,513][ea_next_gen][INFO] # ------ natural selection
[2026-07-07 15:29:32,515][ea_next_gen][INFO] ranking without duplication (including elite):
[2026-07-07 15:29:32,515][ea_next_gen][INFO] Structure ID     14, fitness:    0.00000
[2026-07-07 15:29:32,515][ea_next_gen][INFO] Structure ID      9, fitness:    0.08849
[2026-07-07 15:29:32,515][ea_next_gen][INFO] Structure ID     15, fitness:    0.10528
[2026-07-07 15:29:32,515][ea_next_gen][INFO] Structure ID     10, fitness:    0.20096
[2026-07-07 15:29:32,515][ea_next_gen][INFO] Structure ID      8, fitness:    0.21081
[2026-07-07 15:29:32,515][ea_next_gen][INFO] Structure ID     13, fitness:    0.24786
[2026-07-07 15:29:32,515][ea_next_gen][INFO] Structure ID     19, fitness:    0.25856
[2026-07-07 15:29:32,515][ea_next_gen][INFO] Structure ID      5, fitness:    0.26198
[2026-07-07 15:29:32,515][ea_next_gen][INFO] Structure ID      6, fitness:    0.26971
[2026-07-07 15:29:32,515][ea_next_gen][INFO] Structure ID     18, fitness:    0.29079
[2026-07-07 15:29:32,515][ea_next_gen][INFO] # ------ Generate children
[2026-07-07 15:29:32,515][ea_child][INFO] # -- mindist
[2026-07-07 15:29:32,517][struc_util][INFO] Cu - Cu: 1.32
[2026-07-07 15:29:32,517][struc_util][INFO] Cu - Ag: 1.385
[2026-07-07 15:29:32,517][struc_util][INFO] Cu - Au: 1.34
[2026-07-07 15:29:32,517][struc_util][INFO] Ag - Ag: 1.45
[2026-07-07 15:29:32,517][struc_util][INFO] Ag - Au: 1.405
[2026-07-07 15:29:32,517][struc_util][INFO] Au - Au: 1.36
[2026-07-07 15:29:32,521][ea_child][INFO] eligible candidates for crossover and strain: 10
[2026-07-07 15:29:32,521][ea_child][INFO] eligible candidates for permutation: 10
[2026-07-07 15:29:32,521][ea_child][INFO] eligible candidates for addition: 10
[2026-07-07 15:29:32,522][ea_child][INFO] eligible candidates for elimination: 10
[2026-07-07 15:29:32,522][ea_child][INFO] eligible candidates for substitution: 10
[2026-07-07 15:29:32,527][crossover][WARNING] remove_within_mindist: some atoms within mindist. retry.
[2026-07-07 15:29:32,532][crossover][WARNING] remove_within_mindist: some atoms within mindist. retry.
[2026-07-07 15:29:32,537][crossover][WARNING] remove_within_mindist: some atoms within mindist. retry.
[2026-07-07 15:29:32,541][crossover][WARNING] remove_within_mindist: some atoms within mindist. retry.
[2026-07-07 15:29:32,547][crossover][WARNING] remove_within_mindist: some atoms within mindist. retry.
[2026-07-07 15:29:32,551][crossover][WARNING] remove_within_mindist: some atoms within mindist. retry.
[2026-07-07 15:29:32,556][crossover][WARNING] remove_within_mindist: some atoms within mindist. retry.
[2026-07-07 15:29:32,561][crossover][WARNING] remove_within_mindist: some atoms within mindist. retry.
[2026-07-07 15:29:32,564][crossover][WARNING] remove_within_mindist: some atoms within mindist. retry.
[2026-07-07 15:29:32,569][crossover][WARNING] remove_within_mindist: some atoms within mindist. retry.
[2026-07-07 15:29:32,592][crossover][WARNING] remove_within_mindist: some atoms within mindist. retry.
[2026-07-07 15:29:32,622][crossover][WARNING] remove_within_mindist: some atoms within mindist. retry.
[2026-07-07 15:29:32,644][crossover][WARNING] remove_within_mindist: some atoms within mindist. retry.
[2026-07-07 15:29:32,667][crossover][INFO] Structure ID     20 (8, 3, 5) was generated from     10 and     15 by crossover. Space group:   1 P1
[2026-07-07 15:29:32,668][crossover][INFO] Structure ID     21 (0, 1, 5) was generated from     14 and      8 by crossover. Space group:   1 P1
...
...
...
[2026-07-07 15:29:33,401][ea_next_gen][INFO] # ------ Apply nat/composition constraints to elite candidates
[2026-07-07 15:29:33,401][ea_next_gen][INFO] Elite candidates after constraint filter: 20
[2026-07-07 15:29:33,401][ea_next_gen][INFO] Structure ID     14 keeps as the elite
[2026-07-07 15:29:33,401][ea_next_gen][INFO] Structure ID      9 keeps as the elite

あとはcryspyの実行を繰り返せば,探索が進む.