outcar2axsf プログラム仕様

VASPのOUTCARファイルからXCrySDen AXSFアニメーションファイルを生成するスクリプト。

概要:

VASPのOUTCARファイル(分子動力学シミュレーション結果)を解析し、XCrySDenで可視化可能な AXSFアニメーションファイルを生成します。各ステップの結晶構造(格子ベクトル、原子座標) および原子にかかる力(または速度)をAXSF形式で出力します。

詳細説明:

このスクリプトは、VASPの計算ディレクトリ内のOUTCAR、INCAR、POSCAR、CONTCARファイルを 読み込み、以下の処理を実行します。 1. POSCARから初期構造、CONTCARから最終構造を読み込み、それぞれのCIFファイルを生成します。 2. INCARファイルから`SYSTEM`名と`POTIM`(時間刻み)を抽出し、出力ファイル名などに利用します。 3. OUTCARファイルを解析し、シミュレーション中に記録されたすべての結晶構造ステップを抽出し、

それらを順次AXSFファイルに書き込みます。

  1. AXSFファイルには、各ステップの格子ベクトル、原子のカートesian座標、および原子にかかる力 (OUTCARに力が記録されていない場合は速度)が出力されます。

使用方法:

コマンドラインからVASPのOUTCARファイル(またはその親ディレクトリ)のパスを指定して実行します。 例: python outcar2axsf.py OUTCAR 例: python outcar2axsf.py /path/to/vasp_calculation_directory

関連リンク:

outcar2axsf.py 技術ドキュメント

VASP.outcar2axsf.WriteXSFAnimationFileHeader(outfile, nStep)[ソース]

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

概要:

新しいAXSFファイルの先頭にアニメーションのステップ数と結晶であることを示すヘッダー情報を記述します。

詳細説明:

指定されたファイルパスでAXSFファイルを書き込みモードで開き、 `ANIMSTEPS nStep`と`CRYSTAL`の行を書き込みます。 ファイルオープンに失敗した場合はNoneを返します。

パラメータ:
  • outfile (str) -- 出力するAXSFファイルのパス。

  • nStep (int) -- アニメーションの総ステップ数。

戻り値:

ファイルオープンおよび書き込みに成功した場合1、失敗した場合None。

戻り値の型:

int or None

VASP.outcar2axsf.WriteXSFFileFromCrystal(outfile, iCycle, cry)[ソース]

特定のステップの結晶構造データをAXSFファイルに追記します。

概要:

与えられたtkCrystalオブジェクトから、そのステップの格子ベクトルと原子座標、および力を AXSFファイルの形式に従って追記します。

詳細説明:

指定されたAXSFファイルを追記モードで開き、以下の情報を書き込みます。 - PRIMVECCONVVEC のヘッダー、および3つの格子ベクトル。 - PRIMCOORD のヘッダー、全原子数、および各原子の原子番号、カートesian座標、力(または速度)。 力が取得できない場合は、力が0として書き込まれます。

パラメータ:
  • outfile (str) -- 書き込み対象のAXSFファイルのパス。

  • iCycle (int) -- 現在のステップのインデックス(アニメーションのフレーム番号)。

  • cry (tkCrystal) -- 書き込む結晶構造データを持つtkCrystalオブジェクト。

戻り値:

ファイルオープンおよび書き込みに成功した場合1、失敗した場合None。

戻り値の型:

int or None

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

スクリプトのメインエントリーポイント。

概要:

コマンドライン引数の処理と、OUTCARからAXSFファイルへの変換処理を実行します。

詳細説明:
  1. updatevars() を呼び出し、コマンドライン引数に基づいてグローバル変数(CAR_path, xsffile)を初期化します。

  2. 処理の開始メッセージを表示します。

  3. outcar2axsf() 関数を呼び出し、VASPファイルの解析とAXSFファイルの生成を実行します。

VASP.outcar2axsf.outcar2axsf()[ソース]

VASPのOUTCARファイルからAXSFアニメーションファイルを生成するメインロジック。

概要:

VASP計算ディレクトリ内のOUTCAR、INCAR、POSCAR、CONTCARファイルを読み込み、 必要な情報を抽出し、XCrySDen形式のAXSFアニメーションファイルと初期/最終構造のCIFファイルを生成します。

詳細説明:
  1. VASP関連ファイルのパスを特定し、表示します。

  2. POSCARおよびCONTCARから初期/最終結晶構造を読み込み、その格子定数を表示します。

  3. INCARから`SYSTEM`名と`POTIM`を読み込み、表示します。

  4. 初期構造と最終構造をCIFファイルとして出力します(ファイル名は`SYSTEM`-initial.cif, SYSTEM-final.cif)。

  5. OUTCARファイルから読み取れる結晶構造の総ステップ数を取得し、AXSFファイルのヘッダーを書き込みます。

  6. OUTCARファイルを再度開き、`read_next_crystalstructure`メソッドを使用して各ステップの結晶構造を順次読み込みます。

  7. 読み込んだ各ステップの結晶構造データ(`tkCrystal`オブジェクト)を`WriteXSFFileFromCrystal`関数に渡し、 AXSFファイルに追記していきます。

  8. 処理完了後、スクリプトを終了します。

グローバル変数:
global CAR_path:

VASP計算ディレクトリまたはOUTCARファイルのパス。

global xsffile:

出力されるAXSFファイルのパス。

VASP.outcar2axsf.updatevars()[ソース]

コマンドライン引数に基づいてグローバル変数を更新します。

概要:

コマンドラインで指定された引数からOUTCARのパスを取得し、 それに基づいてAXSF出力ファイル名を決定します。

詳細説明:

sys.argv`から最初の引数を`CAR_path`として取得します。 `CAR_path`からディレクトリ、ファイル名、拡張子を分離し、 AXSFファイルの名前を.xsf`拡張子で生成し、`xsffile`に設定します。

VASP.outcar2axsf.usage()[ソース]

スクリプトの正しい使用方法を表示します。

概要:

コマンドラインでのスクリプトの実行方法をユーザーに提示します。