make_md_history プログラム仕様
VASPの分子動力学計算出力ファイルを解析し、XCrySDen AXSFファイルへの変換や、平均二乗変位 (MSD) の履歴を計算するスクリプトです。
- 詳細説明:
VASPのOUTCARファイルから時系列の結晶構造を読み込み、XCrySDen形式のアニメーションファイル (AXSF) を生成します。 また、MDシミュレーションの履歴情報(温度、エネルギー、格子定数、原子位置、平均二乗変位 (MSD) など)を抽出し、CSV形式で出力します。
- 関連リンク:
- 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()
概要: スクリプトの正しい使用方法を標準出力に表示します。
- 詳細説明:
コマンドライン引数の種類によって異なる使用例を示します。 引数不足や不正なモード指定があった場合に呼び出され、ユーザーに適切な操作方法を案内します。
- 引数:
なし
- 戻り値:
なし