v0.0.3 ワークフロースクリプト
aenet_env は汎用的な処理・環境構築のためのライブラリです。以下は v0.0.3の利用例であり、全工程を必ず実行する必要はありません。各スクリプトの冒頭にある設定値を編集し、python スクリプト名.py で実行します。a00、a01、a02 等は独立した構造生成方式であり、連続工程ではありません。a系列の方式固有の手順はここでは解説しません。
b00 — b00_make_poscar.py
WORK_DIR, ELEMENTS, CELL を設定し、aenet_env.xyz.convert_xyz_tree(WORK_DIR, WORK_DIR, elements=ELEMENTS, cell=CELL) を呼び出します。番号付き周期XYZを元素順に整列したVASP5 POSCARへ変換します。例は SiO2、('Si','O')、CELL=None。入力の周期セル・原子種・原子数・出力先を確認し、既存ファイルを保護してください。
b01 — b01_stage_structures.py
WORK_DIR を設定し、aenet_env.structures.discover_flat_cases(WORK_DIR) で計算ケースを探索します。提示されたv0.0.3スクリプトはPOSCARの存在確認と一覧表示のみで、構造のコピーや移動はしません。
b02 — b02_prepare_vasp.py
CALCULATIONS_DIR, POTCAR_ROOT, ELEMENTS, KPOINT_GRID, INCAR_TAGS を編集します。load_or_discover_cases で対象を特定し、vasp_inputs.prepare_vasp_inputs でINCAR・KPOINTS・POTCARを準備します。例は ENCUT=520 eV, EDIFF=1e-5, NSW=0, IBRION=-1, ISMEAR=0, SIGMA=0.1, ISPIN=1, KPOINT_GRID=(1,1,1)。これは単点DFTの例示設定であり、材料・セル・PAWデータに対してENCUT、k点、スピン、収束性を再検討します。POTCAR_ROOT=~/potpaw_PBE.64 は環境固有です。
b03 — b03_submit_vasp_jobs.py
WORK_DIR, CALCULATIONS_DIR, JOB_FILE, SUBMIT_COMMAND, SUBMIT を編集します。全ケースのPOSCAR・INCAR・KPOINTS・POTCARの存在を確認し、ケース内の既存ジョブスクリプトを利用、または指定ファイルをコピーして投入します。例は JOB_FILE=job_hpcs2024_node1.sh, SUBMIT_COMMAND=('qsub',), SUBMIT=True。投入を伴うため、事前確認では SUBMIT=False に変更し、ジョブファイル、投入先、キュー、計算資源、既存成果物の扱いを確認してください。計算機固有のジョブ管理は src/aenet_env/ に置きません。
c00 — c00_collect_references.py
VASP_CASES_DIR, REFERENCES_DIR を指定し、aenet_env.references.collect_reference_xsf を呼びます。vasprun.xml のセル・元素・座標・エネルギー・力から学習用XSFを収集します。単にジョブが終了しただけでは参照計算が妥当とは限りません。SCF収束、構造、元素順、エネルギー単位、力の符号と単位を確認し、欠損・失敗した計算を教師に混入させないでください。
c01 — c01_train_ann.py
REFERENCES=ROOT/'references' の *.xsf を列挙し、aenet_env.training の関数を選んで実行します。main() では一方式のみ有効化します。v0.0.3の添付例は fortran_normal(refs) を選択しています。fortran_legacy(Fortran実行ファイル直接)、fortran_normal(aenet-pythonのFortran API)、aenet_python_torch(aenet-python Torch)、separate_aenet_pytorch(独立実装)は別経路です。設定の詳細は「学習パラメータ」を参照してください。
ステージ間の境界と検証
b00 → b01 → b02 → b03 → c00 → c01 は利用例としての順序です。構造生成、DFT入力成立、計算完了、参照データ妥当性、ANN学習精度、RMC_POTでの有効性は別々に検証します。SiO₂のパスと設定はv0.0.3の計算例です。
関連資料: v0.0.3 READMEに基づくプロジェクトガイド。