symmetrize_tklib プログラム仕様
pymatgenとtklibを用いてCIFファイルを対称化し、その結果を新しいCIFファイルに保存するスクリプト。
- 概要:
入力されたCIFファイルを読み込み、pymatgenのSpacegroupAnalyzerを使用して結晶構造を対称化します。 対称化された構造から得られる空間群情報、格子定数、原子サイトの情報を抽出し、 tklibのtkFileモジュールを使用して新しいCIFファイルとして出力します。 このスクリプトは、pymatgenの強力な対称性解析機能を活用しつつ、tkCrytalのデータ構造と連携して 出力を生成するハイブリッドなアプローチを採用しています。
- 詳細説明:
コマンドライン引数から入力CIFファイルを指定します(デフォルトは 'SrTiO3.cif')。
ログファイルを生成し、標準出力とログファイルへ出力をリダイレクトします。
tkCIFを使って入力CIFファイルを読み込み、基本的な結晶情報を取得します。
pymatgenのStructure.from_fileメソッドで入力CIFファイルを読み込み、Structureオブジェクトを生成します。
SpacegroupAnalyzerを用いてStructureオブジェクトを解析し、対称化されたStructureオブジェクトを取得します。
対称化された構造から、空間群名、番号、対称操作、格子パラメータ、等価サイトの情報を抽出します。
抽出した情報(格子、空間群、対称操作、原子サイトの分数座標と占有率)を基に、 新しいCIFファイル('{filebody}-symmetrized.cif')を生成・保存します。
対称操作のマトリクス成分をCIF形式の文字列(例: 'x', 'x+y', '1/2-z')に変換するヘルパー関数を使用します。
- 関連リンク: