make_md_history プログラム仕様

VASPの分子動力学計算出力ファイルを解析し、XCrySDen AXSFファイルへの変換や、平均二乗変位 (MSD) の履歴を計算するスクリプトです。

詳細説明:

VASPのOUTCARファイルから時系列の結晶構造を読み込み、XCrySDen形式のアニメーションファイル (AXSF) を生成します。 また、MDシミュレーションの履歴情報(温度、エネルギー、格子定数、原子位置、平均二乗変位 (MSD) など)を抽出し、CSV形式で出力します。

関連リンク:

make_md_history.py 技術ドキュメント

VASP.msd.make_md_history.WriteXSFAnimationFileHeader(outfile, nStep)

概要: XCrySDen AXSFアニメーションファイルのヘッダーを書き込みます。

詳細説明:

AXSFファイルのアニメーションステップ数 (ANIMSTEPS) と 結晶構造の開始 (CRYSTAL) を示すヘッダー情報を指定されたファイルに書き込みます。

引数:
param outfile:

str: 出力XSFファイルのパス。

param nStep:

int: アニメーションの総ステップ数。

戻り値:
returns:

int or None: ファイルの書き込みに成功した場合は 1、失敗した場合は None を返します。

VASP.msd.make_md_history.WriteXSFFileFromCrystal(outfile, iCycle, cry)

概要: 指定された結晶構造情報をXCrySDen AXSFファイルに追記します。

詳細説明:

特定のMDステップにおける格子ベクトル (PRIMVEC, CONVVEC) と 各原子のカート座標および力または速度 (PRIMCOORD) を 指定されたXSFファイルに追記します。 原子の情報を基に原子番号を決定します。

引数:
param outfile:

str: 追記先のXSFファイルのパス。

param iCycle:

int: 現在のMDステップ(サイクル)番号。

param cry:

tkcrystal.tkcrystal.tkCrystal: 書き込む結晶構造オブジェクト。

戻り値:
returns:

int or None: ファイルの書き込みに成功した場合は 1、失敗した場合は None を返します。

VASP.msd.make_md_history.main()

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

詳細説明:

コマンドライン引数を解析してグローバル変数を更新し (updatevars)、 mode (グローバル変数) の値に基づいて make_axsf() または make_history() 関数を呼び出します。 mode が 'init' の場合はAXSFファイルを生成し、それ以外の場合はMD履歴を計算します。

引数:

なし

戻り値:

なし

VASP.msd.make_md_history.make_axsf()

概要: VASPのOUTCARファイルからXCrySDen AXSFファイルを生成します。

詳細説明:

CAR_path (グローバル変数) で指定されたディレクトリ内のVASP出力ファイル (OUTCAR, INCAR, POSCAR)を読み込みます。 OUTCARから時系列の結晶構造を抽出し、md.xsf というXCrySDen形式のアニメーションファイルと、 MD情報(温度、エネルギーなど)を記録した inf.csv ファイルを生成します。 nmax_read (グローバル変数) で読み込む最大ステップ数を制限できます。

引数:

なし (グローバル変数 CAR_path, nskip, nmax_read を使用)

戻り値:
returns:

list[tkcrystal.tkcrystal.tkCrystal]: 読み込まれた結晶構造のリスト。

VASP.msd.make_md_history.make_history()

概要: VASPのMD計算結果から、原子の変位履歴や平均二乗変位 (MSD) を計算し、CSVファイルに出力します。

詳細説明:

CAR_path (グローバル変数) で指定されたVASP出力ディレクトリから、 初期・最終構造のCIFファイル、原子ごとの平均位置、 およびMD履歴データ(格子情報、エネルギー、MSD)を生成します。 MSDの計算は、origin (初期位置の基準), drift_correction (ドリフト補正方法), mode (MSD計算の対象) のグローバル設定に従って行われます。 必要に応じてAXSFファイルを再生成します。 計算結果は *-average.csv および *-history.csv として出力されます。

引数:

なし (グローバル変数 CAR_path, mode, origin, drift_correction, nskip, nmax_read を使用)

戻り値:

なし (計算結果をファイルに出力し、スクリプトを終了します)

VASP.msd.make_md_history.read_axsf(xsffile)

概要: XCrySDen AXSFファイルを読み込み、結晶構造のリストを生成します。

詳細説明:

指定されたAXSFファイルから各MDステップの格子情報と原子座標を解析し、 tkCrystal オブジェクトのリストとして返します。 nmax_read (グローバル変数) が設定されている場合、そのステップ数を超えるデータは読み込まれません。

引数:
param xsffile:

str: 読み込むAXSFファイルのパス。

戻り値:
returns:

list[tkcrystal.tkcrystal.tkCrystal] or None: 読み込まれた`tkCrystal`オブジェクトのリスト、 またはファイル読み込み失敗時はNone。

VASP.msd.make_md_history.updatevars()

概要: コマンドライン引数を解析し、グローバル設定変数を更新します。

詳細説明:

sys.argv からコマンドライン引数を取得し、 CAR_path, mode, origin, drift_correction, nskip, nmax_read などのグローバル変数の値を更新します。 引数が不足している場合は usage() 関数を呼び出してスクリプトを終了します。

引数:

なし (コマンドライン引数を内部で処理します)

戻り値:

なし

VASP.msd.make_md_history.usage()

概要: スクリプトの正しい使用方法を標準出力に表示します。

詳細説明:

コマンドライン引数の種類によって異なる使用例を示します。 引数不足や不正なモード指定があった場合に呼び出され、ユーザーに適切な操作方法を案内します。

引数:

なし

戻り値:

なし