電荷中性条件

2025年7月5日

バージョン1.4.1からEA-vcにおいて,構造生成の際に電荷中性条件を課すことが可能になった. ランダム構造生成にも進化的操作による構造生成にも適用できる.

cryspy.inでそれぞれのatypeに対応する電荷をchargeとして入力する.

cryspy.inの例:

...
[structure]
atype = Li Ca Cl
ll_nat = 0 0 0
ul_nat = 8 8 8
charge = 1 2 -1
...

例えばこの場合,(Li, Ca, Cl) = (4, 0, 4)や(Li, Ca, Cl) = (4, 2, 8)などの電荷中性条件を満たす構造のみ生成される.

下記のようにadd_maxelim_maxが小さすぎると,原子を追加,削除する際に電荷中性条件を満たす原子数の組合せがゼロになって構造生成できなくなるので注意.

...
[structure]
atype = Li Ca Cl
ll_nat = 0 0 0
ul_nat = 8 8 8
charge = 1 2 -1
...
...
[EA]
add_max = 1
elim_max = 1

例えば上記の場合,add_max = 1の場合,電荷中性条件を満たす原子数の組合せはゼロ.add_max = 2の場合,(Li, Ca, Cl) = (1, 0, 1),つまりLiとClを1個ずつ追加する組合せは(+1) + (-1) = 0で電荷中性条件を満たす.add_max = 3であれば(Li, Ca, Cl) = (1, 0, 1), (0, 1, 2)の組合せがある.