Geometryモジュール
grouping
- grrmpy.geometry.functions.grouping(atoms_list, target0=None, target1=[], target2=[], mult=1, rtype='2D', **kwargs)[ソース]
同一構造をまとめる.
atoms_list中で同じ構造ごとにindex番号をまとめたリストを返す.例えば,戻り値が[[0,1,3],[2,5,6],[4]]の場合,0,1,3番目の構造が同一構造である.結合の有無で同一構造かどうか判定を行なう.厳密にはSMILESが同一かを判定している.ただし,全て単結合としてSMILESを表現するため,2重結合と単結合の違い(角度の違い)は表現できない.ゼオライトなどを扱う場合,活性点以外の結合状態の違いはあまり意味をなさない.引数のtargetを指定することで注目したい結合部分のみで同一構造判定を行なうことができる.Parameters:
- atoms_list: list of Atoms
Atomsのリスト
- target0: list of int
- target0,target1とtarget2との結合状態を見る.Noneの場合,全ての結合状態を見る.
- target1: list of int
- target0,target1の結合状態を見る.
- target2: list of int
- target0の原子との結合状態を見る.
- rtype: str
- 戻り値のタイプ. "1D" または "2D""1D"の場合,[0,0,1,2,3,3,4...]のような1次元リストを返す.この場合0,1番目と4,5番目が同じ構造という意味."2D"の場合,[[0,1],[2],[3],[4,5],[6]...]のようなリストを返す.これも0,1番目と4,5番目が同じ構造という意味.
- mult: float
結合の判定を行なうための係数.数字の大きい程,遠く離れていても結合していると判断される.
- kwargs:
- 原子毎に結合半径を指定できる.ex) Ag=1.4 のように指定する.
ヒント
targetの指定の仕方として, 例えばゼオライトにAg4クラスターを担持した触媒の場合,次のように指定すると良い.計算モード
target0
target1
target2
厳密な構造判定
None
[]
[]
かなりラフな構造判定
反応物
[]
Ag
ラフな構造判定(Agのコンフォメーションも考慮)
反応物+Ag
[]
[]
ゼオライトケージへの吸着を考慮
反応物
Ag
その他の原子
ゼオライトケージへの吸着も考慮+Agのコンフォメーションも考慮
反応物+Ag
[]
その他の原子
issame
2つのAtomsが同じジオメトリであるか判断する.
2構造の座標やindex番号の違いに関係なく,純粋にジオメトリのみに注目し同一構造判定を行なうことができる.