symmetrize_tklib プログラム仕様

pymatgenとtklibを用いてCIFファイルを対称化し、その結果を新しいCIFファイルに保存するスクリプト。

概要:

入力されたCIFファイルを読み込み、pymatgenのSpacegroupAnalyzerを使用して結晶構造を対称化します。 対称化された構造から得られる空間群情報、格子定数、原子サイトの情報を抽出し、 tklibのtkFileモジュールを使用して新しいCIFファイルとして出力します。 このスクリプトは、pymatgenの強力な対称性解析機能を活用しつつ、tkCrytalのデータ構造と連携して 出力を生成するハイブリッドなアプローチを採用しています。

詳細説明:
  1. コマンドライン引数から入力CIFファイルを指定します(デフォルトは 'SrTiO3.cif')。

  2. ログファイルを生成し、標準出力とログファイルへ出力をリダイレクトします。

  3. tkCIFを使って入力CIFファイルを読み込み、基本的な結晶情報を取得します。

  4. pymatgenのStructure.from_fileメソッドで入力CIFファイルを読み込み、Structureオブジェクトを生成します。

  5. SpacegroupAnalyzerを用いてStructureオブジェクトを解析し、対称化されたStructureオブジェクトを取得します。

  6. 対称化された構造から、空間群名、番号、対称操作、格子パラメータ、等価サイトの情報を抽出します。

  7. 抽出した情報(格子、空間群、対称操作、原子サイトの分数座標と占有率)を基に、 新しいCIFファイル('{filebody}-symmetrized.cif')を生成・保存します。

  8. 対称操作のマトリクス成分をCIF形式の文字列(例: 'x', 'x+y', '1/2-z')に変換するヘルパー関数を使用します。

関連リンク:

symmetrize_tklib.py 技術ドキュメント

crystal.symmetrize_tklib.main()[ソース]

メインプログラムのエントリーポイント。CIFファイルを読み込み、対称化し、結果を出力する。

詳細説明:
  • 入力CIFファイルを読み込み、`tkCIF`と`pymatgen.Structure`の両方で構造データを取得します。

  • `pymatgen.SpacegroupAnalyzer`を使用して構造を対称化し、空間群情報、格子パラメータ、等価サイトを取得します。

  • 対称化された構造情報(格子、空間群、原子サイト)を基に、新しいCIFファイルを生成して保存します。

  • ログファイルへのリダイレクトやエラーハンドリングも行います。

戻り値:

None