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番号の違いに関係なく,純粋にジオメトリのみに注目し同一構造判定を行なうことができる.
../../_images/geometry.png ../../_images/geometry_code.png
grrmpy.geometry.functions.issame(atoms1, atoms2, target0=None, target1=[], target2=[], mult=1, **kwargs)[ソース]

2つの構造が同一構造かどうかを判定する

Atomsの__eq__とは異なり,ジオメトリが同じかどうかを判定する.