tkcif2pymatgen.py Library Documentation
ライブラリの機能や目的
tkcif2pymatgen.py ライブラリは、tkCIF.py のような外部ライブラリによってパースされた tkCrystal オブジェクトを、Python の人気のある物質科学ライブラリ pymatgen の Structure オブジェクトに変換することを目的としています。
主な機能は以下の通りです。
tkCrystalオブジェクトから格子パラメータ(\(a, b, c, \alpha, \beta, \gamma\))を抽出します。tkCrystalオブジェクト内の各原子サイトから、元素記号、占有率、分率座標を読み取ります。部分占有率を持つ原子サイトを
pymatgenのSpecies表現(辞書形式)に適切に変換します。抽出した情報に基づいて
pymatgen.core.Structureオブジェクトを構築し、返します。
このライブラリは、tkCIF.py などが提供する結晶構造データ形式と pymatgen のデータ構造との間の相互運用性を提供し、異なるツール間でのデータ変換と解析を容易にすることを課題としています。
importする方法
このライブラリの関数を他のPythonプログラムで利用するには、以下のように import 文を使用します。
from tkcif2pymatgen import tkcrystal_to_pmg_structure
必要な非標準ライブラリとインストール方法
このライブラリは、pymatgen に依存しています。pymatgen は、Python の標準ライブラリには含まれていないため、事前にインストールが必要です。
pymatgen
機能: 結晶構造データの表現、操作、解析を行うための強力なライブラリです。
インストール方法:
pipコマンドを使用してインストールできます。
pip install pymatgen
tkCrystalオブジェクトの供給元について
このライブラリは tkCrystal オブジェクトを入力として期待しますが、tkCrystal オブジェクト自体は tkcif2pymatgen.py ライブラリ内では定義されていません。これは通常、tkCIF.py のような別のライブラリによって提供されるオブジェクトであり、そのライブラリのインストールと使用法は別途必要となります。
importできる変数と関数
このライブラリは、以下の関数を提供します。グローバル変数はありません。
関数
tkcrystal_to_pmg_structure(cry)
動作:
tkCrystalオブジェクトから格子定数、原子サイト情報(元素、占有率、分率座標)を抽出し、それらを使用してpymatgen.core.Structureオブジェクトを構築します。 占有率が1でない原子サイトは、pymatgenのSpeciesオブジェクトの辞書形式(例:{ "Al": 0.5 })で表現されます。 関数の説明は3重引用符で記述されています。引数:
cry(tkCrystal オブジェクト):tkCIF.pyなどのライブラリによってパースされた結晶構造データを含むオブジェクト。このオブジェクトは、以下のメソッドを持つことを想定しています。LatticeParameters(): 格子パラメータ \(a, b, c, \alpha, \beta, \gamma\) を返す。AtomSiteList(): 各原子サイトを表すオブジェクトのリストを返す。AtomSiteList()から得られる各サイトオブジェクトは、以下のメソッドを持つことを想定しています。AtomNameOnly(): 元素記号(例:"Al")を返す。Occupancy(): 部分占有率を返す。Position(): 分率座標 \((x, y, z)\) を返す。
戻り値:
pymatgen.core.Structureオブジェクト: 入力されたtkCrystalオブジェクトから変換された結晶構造データ。
main scriptとして実行したときの動作
tkcif2pymatgen.py は、if __name__ == "__main__": ブロックを含んでいません。
そのため、このファイルを直接Pythonインタープリタで実行 (python tkcif2pymatgen.py など) しても、特別な処理は行われず、単にスクリプト内の関数定義が読み込まれるだけです。通常は、他のPythonスクリプトからこのライブラリの関数を import して利用することが想定されています。