以下は、kpath_pymatgen.py のソースコードを解析して作成されたMarkdownドキュメントです。Sphinx (MyST) でのビルドを想定し、指定された安全ルールに厳密に従っています。

# ``kpath_pymatgen.py`` ドキュメント

## 概要

``pymatgen`` を用いて結晶構造の高対称k点経路を計算し、表示するスクリプトです。
入力された結晶構造のBravais格子に基づいて高対称k点経路を計算し、表示します。

## 詳細説明

このスクリプトは、指定されたCIFファイルから結晶構造を読み込み、その原始構造 (primitive structure) に基づいて高対称k点経路を生成します。
経路タイプは ``hinuma`` (Hinuma et al. 2017) または ``sc`` (Setyawan-Curtarolo 2010) から選択でき、デフォルトは ``hinuma`` です。
計算されたk点経路のセグメントと、各高対称点の分数座標を標準出力に表示します。
コマンドライン引数を使用することで、入力ファイルと経路タイプを動的に指定できます。

現在のスクリプトの実行ロジックでは、``main()`` 関数を呼び出すための条件式 ``if __name__ == '__MAIN__':`` が常に偽となるため、高対称k点経路の計算処理は自動的には実行されません。

## インストール

このスクリプト自体のインストール手順は、コードからは確認できません。Pythonがインストールされている環境で、依存関係を満たしていれば実行可能です。

## 依存関係

このスクリプトは以下の非標準ライブラリに依存します。

*   ``pymatgen``

これらのライブラリは ``pip`` を使用してインストールできます。

```bash
pip install pymatgen

使用方法

コマンドライン引数

スクリプトは以下のコマンドライン引数をサポートします。

  • 1番目の引数 (sys.argv[1]): 入力CIFファイルへのパスを指定します。

    • デフォルト値: ZnO.cif

  • 2番目の引数 (sys.argv[2]): 使用する高対称k点経路のタイプを指定します。

    • 取りうる値: hinuma (デフォルト), sc

入力CIFファイルとして my_structure.cif を使用し、経路タイプを sc に指定して実行する場合の例です。

python kpath_pymatgen.py my_structure.cif sc

入出力

入力

  • CIFファイル: 結晶構造データを含むファイルです。スクリプトは pymatgen.core.Structure.from_file() を使用してこのファイルを読み込みます。デフォルトのファイル名は ZnO.cif です。

  • 経路タイプ (文字列): コマンドライン引数またはデフォルト設定で hinuma または sc のいずれかを指定します。

出力

処理が成功した場合、以下の情報が標準出力に表示されます。

  • k点経路のセグメント: 「=== k-path 経路 ===」の見出しの下に、計算された高対称k点経路のセグメントが「A B C」のような形式で表示されます。

  • 高対称点座標: 「=== 高対称点座標 ===」の見出しの下に、各高対称点の記号とその分数座標が「Γ : [0. 0. 0.]」のような形式で表示されます。

エラーが発生した場合、以下のメッセージが標準出力に表示され、プログラムが終了します。

  • Error: Could not get k path for [...] with the path_type=[...]

関数

main() 関数

概要

pymatgen を用いて結晶構造の高対称k点経路を計算し、結果を標準出力に表示します。

詳細説明

グローバル変数 infilepath_type に従って、指定された結晶構造の原始構造に対する高対称k点経路を計算します。 計算された経路のセグメントと高対称点の座標を整形して標準出力に表示します。 経路の計算に失敗した場合は、エラーメッセージを表示してプログラムを終了します。

引数

main() 関数は直接の引数を取りません。動作はグローバル変数 infile および path_type に依存します。

戻り値

None

例外

  • SystemExit: 高対称k点経路の計算に失敗した場合にプログラムを終了します。

関連情報

kpath_pymatgen_usage