tkcif2pymatgen.py Library Documentation

ライブラリの機能や目的

tkcif2pymatgen.py ライブラリは、tkCIF.py のような外部ライブラリによってパースされた tkCrystal オブジェクトを、Python の人気のある物質科学ライブラリ pymatgenStructure オブジェクトに変換することを目的としています。

主な機能は以下の通りです。

  • tkCrystal オブジェクトから格子パラメータ(\(a, b, c, \alpha, \beta, \gamma\))を抽出します。

  • tkCrystal オブジェクト内の各原子サイトから、元素記号、占有率、分率座標を読み取ります。

  • 部分占有率を持つ原子サイトを pymatgenSpecies 表現(辞書形式)に適切に変換します。

  • 抽出した情報に基づいて 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でない原子サイトは、pymatgenSpecies オブジェクトの辞書形式(例: { "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 して利用することが想定されています。