AENET ソルバー

概要

AenetSolver は、ODAT-SE の odatse.solver.SolverBase を継承したソルバークラスです。 AENET の predict.x をサブプロセスとして実行し、構造テンプレートにパラメータを代入して 原子間エネルギーを計算します。

ソルバーの仕組み

evaluate メソッドが呼ばれると、以下の処理が行われます:

  1. 作業ディレクトリ Log{step}_{iset}/ を作成

  2. predict.in と ANN ポテンシャルファイルをコピー

  3. テンプレートファイル内のプレースホルダー(例: value_01)をパラメータ値で置換し、入力構造ファイルを生成

  4. predict.x を実行

  5. predict.out から全エネルギーと原子数を抽出

  6. エネルギー/原子数(eV/atom)を R-factor として返却

ソースコード構造

src/AenetSolver/
  __init__.py        # Solver クラスのエクスポート
  _main.py           # CLI エントリポイント (odatse.initialize + algorithm dispatch)
  aenet.py           # Solver クラス本体

入力ファイル

input.toml

ODAT-SE 標準の TOML 設定ファイルです。

[base]
dimension = 1
output_dir = "output"

[solver]
name = "aenet"

[solver.config]
aenet_exec_file = "predict.x"           # predict.x のパス
aenet_ann_potential = "N.5t-5t.ann"      # ANN ポテンシャルファイル
aenet_template_file = "template.xsf"    # テンプレート構造ファイル (デフォルト)
aenet_input_file = "structure_data.xsf"  # 生成される入力ファイル名 (デフォルト)
bulk_output_file = "predict.in"          # AENET 設定ファイル (デフォルト)

[solver.param]
string_list = ["value_01"]              # テンプレート内のプレースホルダー

[solver.post]
remove_work_dir = false                 # 計算後に作業ディレクトリを削除するか

[algorithm]
name = "mapper"                          # 使用するアルゴリズム
label_list = ["z"]

[algorithm.param]
min_list = [0.8]
max_list = [1.4]
num_list = [101]

solver.config セクション

パラメータ

デフォルト値

説明

aenet_exec_file

predict.x

AENET predict.x 実行ファイルのパス

aenet_ann_potential

N.10t-10t.ann

学習済み ANN ポテンシャルファイル

aenet_template_file

template.xsf

構造テンプレートファイル

aenet_input_file

structure_data.xsf

生成される構造入力ファイル名

bulk_output_file

predict.in

AENET 設定ファイル

solver.param セクション

パラメータ

デフォルト値

説明

string_list

["value_01", "value_02"]

テンプレート内で置換するプレースホルダーのリスト

テンプレートファイル

テンプレートファイル (template.xsf) は XSF 形式の構造ファイルで、 最適化パラメータの位置にプレースホルダーを記述します。

ATOMS
N             0.0000000000        0.0000000000        0.0000000000
N             0.0000000000        0.0000000000        value_01

この例では value_01 が N-N 結合距離に対応し、アルゴリズムによって最適化されます。

predict.in

AENET 予測計算の設定ファイルです。

TYPES
1
N

NETWORKS
  N N.5t-5t.ann

FORCES

FILES
1
structure_data.xsf

実行方法

CLI 実行:

odatse-aenet input.toml

MPI 並列実行:

mpiexec -np 4 odatse-aenet input.toml

スクリプトから直接実行:

python3 src/main.py input.toml