make_kpoints プログラム仕様

概要: CIFファイルからVASPのバンド構造計算用KPOINTSファイルを生成します。

詳細説明: pymatgenのHighSymmKpathユーティリティを利用して、CIFファイルから読み込んだ結晶構造に基づき、 高対称性kパスを自動的に決定し、VASP形式のKPOINTSファイルを生成します。 構造のプリミティブ化、k点の丸め処理、k点分割数の設定などが可能です。

関連リンク: make_kpoints.py 技術ドキュメント

VASP.make_kpoints.convert_primitive(structure_original, symprec, angle_tolerance, international_monoclinic, keep_site_properties)[ソース]

概要: 構造を標準化し、プリミティブセルに変換します。

詳細説明: `pymatgen`の`SpacegroupAnalyzer`を使用して、与えられた構造の対称性を検出し、 その対称性に基づいて標準的なプリミティブセルに変換します。 単斜晶系の慣習やサイトプロパティの保持などのオプションを指定できます。

パラメータ:
  • structure_original -- pymatgen.core.structure.Structure 変換元の構造オブジェクト。

  • symprec -- float 対称性検出のための位置許容誤差。

  • angle_tolerance -- float 対称性検出のための角度許容誤差(度)。

  • international_monoclinic -- bool 単斜晶系で国際的な慣習を使用するかどうか。

  • keep_site_properties -- bool プリミティブ構造への変換時に元のサイトプロパティを保持するかどうか。

戻り値:

pymatgen.core.structure.Structure プリミティブ化された標準構造オブジェクト。

VASP.make_kpoints.generate_kpoints(structure, args)[ソース]

概要: VASPのKPOINTSファイルを生成し、出力します。

詳細説明: 与えられた構造とコマンドライン引数に基づいて、 `pymatgen`の`HighSymmKpath`を使用して高対称性kパスを決定します。 その後、決定されたkパスに沿ってk点を生成し、 VASPのKPOINTSファイル(ラインモード)として指定されたファイル名で書き出します。 k点の座標は`snap`関数により丸め処理が施されます。

パラメータ:
  • structure -- pymatgen.core.structure.Structure Kポイントパス生成に使用する構造オブジェクト。

  • args -- argparse.Namespace コマンドライン引数を含むオブジェクト。path_type, symprec, angle_tolerance, atol, max_den, ndivisions, output などの属性が必要です。

戻り値:

None

VASP.make_kpoints.initialize()[ソース]

概要: コマンドライン引数パーサーを初期化します。

詳細説明: スクリプトが受け入れるコマンドライン引数とその説明を定義し、 argparse.ArgumentParser オブジェクトを返します。 これにより、ユーザーは様々なオプションを指定してスクリプトを実行できます。

戻り値:

argparse.ArgumentParser コマンドライン引数パーサーオブジェクト。

VASP.make_kpoints.main()[ソース]

概要: スクリプトの主処理を実行します。

詳細説明: この関数は、コマンドライン引数の解析から、CIFファイルの読み込み、 構造のプリミティブセルへの変換(オプション)、高対称性kパスの生成、 そしてVASP KPOINTSファイルの書き出しまでの一連の処理を制御します。 エラー発生時には適切なメッセージを出力し、処理を中断します。

戻り値:

None

VASP.make_kpoints.read_cif(ciffile, frac_tolerance, primitive=True)[ソース]

概要: CIFファイルを読み込み、構造オブジェクトを返します。

詳細説明: 指定されたCIFファイルを`pymatgen`の`CifParser`で解析し、 ファイル内の最初の構造を`pymatgen.core.structure.Structure`オブジェクトとして取得します。 読み込み時にプリミティブセルへの変換を行うオプションも提供されます。

パラメータ:
  • ciffile -- str 読み込むCIFファイルのパス。

  • frac_tolerance -- float 構造パラメータの分数許容誤差。

  • primitive -- bool 読み込み時にプリミティブセルに変換するかどうか。

戻り値:

pymatgen.core.structure.Structure | None 読み込まれた構造オブジェクト、またはエラー発生時はNone。

VASP.make_kpoints.snap(coords, max_den=2)[ソース]

概要: 分数座標を、指定された最大分母数で丸めます。

詳細説明: pymatgenのHighSymmKpathで生成された浮動小数点座標を、 KPOINTSファイルに記述する際に、より簡潔な分数表現に近づけるために使用します。 例えば、max_den=2の場合、座標は1/2までの分母で丸められます。

パラメータ:
  • coords -- list[float] 変換する座標のリスト。

  • max_den -- int 丸めの最大分母数(デフォルト: 2)。

戻り値:

list[float] 丸められた座標のリスト。

VASP.make_kpoints.update_vars(parser)[ソース]

概要: コマンドライン引数をパースし、設定を更新します。

詳細説明: ArgumentParser オブジェクトが定義した引数に従い、 ユーザーがコマンドラインで指定した引数を解析し、argparse.Namespace オブジェクトとして返します。 このオブジェクトには、各引数の値が属性として格納されます。

パラメータ:

parser -- argparse.ArgumentParser 初期化されたArgumentParserオブジェクト。

戻り値:

argparse.Namespace パースされたコマンドライン引数を格納するオブジェクト。