GRRMの結果をデータをインポートする
XXX_(EQ,TS,PT)_list.logから構造をインポート
from grrmpy.io import log2atoms
from grrmpy.visualize import View
eq_log = "XXX_EQ_list.log"
com = "XXX.com" # FrozenAtomsがあるときに指定
poscar = "POSCAR" # 周期境界で計算した際に指定
eq_list = log2atoms(eq_log,com,poscar)
View(eq_list)
COMファイルはFrozenAtomsがある場合に指定する
POSCARはGRRM-VASPで計算した(周期境界)場合に指定する.
XXX_(TS,PT)_list.logからCONNECTIONSを抽出
2次元のリストとしてCONNECTIONSを取得できる.
from grrmpy.io import read_connections
ts_log = "XXX_TS_list.log"
connections = read_connections(ts_log)
# connections
# [[1,2],[2,7],[4,3],["??",1]]
不要なCONNECTIONSを省く方法
get_unique_connections
を用いる.
同じ番号([1,1],[3,3]など)の削除
価値のないCONNECTIONS(["??",2],["DC",2]など)の削除
同じCOONECTIONSの組み合わせ([0,1],[1,0],[0,1])は一つだけにする
from grrmpy.functions import get_unique_connections
from grrmpy.io import read_connections
connections = read_connections(ts_log)
valuable_connections, idx = get_unique_connections(connections)
valuable_connections に不要なCOONECTIONSを削除した新なCONNECTIONSが含まれている.
idx は新たなCONNECTIONSが元々何番目のCONNECTIONSだったかが記録されている.
同一構造判定を行ないさらに不要なCONNECTIONSを省く方法
詳しいtargetの指定の仕方は grouping
を参照する
from grrmpy.geometry import grouping
from grrmpy.io import read_connections
valuable_connections, idx = get_unique_connections(connections)
group = grouping(eq_list, rtype="1D")
connections = [[ini,fin] for ini,fin in valuable_connections if group[ini]!=group[fin]]