pmd は,設定ファイル in.pmd と原子構造ファイル pmdini を読み込むことから開始する. 原子構造以外のシミュレーション設定は in.pmd に記述する必要がある.


in.pmd の例

NOTE

この例は Morse および Coulomb ポテンシャルを用いた NVE-MD の設定. シミュレーション内容に応じて適宜修正すること.

#
#  時間の単位  = フェムト秒
#  長さの単位  = オングストローム
#  質量の単位  = 統一原子質量単位
#
io_format         ascii
print_level       1
num_omp_threads   4

time_interval     2d0
num_iteration     1000
min_iteration     10
num_out_energy    100

num_out_pos       10
# out_pos_combined  F

force_type        Morse Coulomb
cutoff_radius     5.8d0
cutoff_buffer     0.2d0

flag_damping      0
damping_coeff     0.99d0
converge_eps      1d-4
converge_num      3

initial_temperature    -1.0d0
final_temperature      -1.0d0
temperature_control     none
temperature_target      300.0
temperature_relax_time  100.0

factor_direction 3 2
    1.000d0  1.000d0  1.000d0
    1.000d0  0.000d0  1.000d0

stress_control      none
stress_relax_time   100.0
stress_target    5.0  5.0  5.0  0.0  0.0  0.0

boundary   ppp

ここでは,!# で始まる行はコメントとして扱われる.


入力パラメータ

num_nodes_{x,y,z}

  • デフォルト: -1

x,y,z 方向の分割数を指定する.負の値(<=0)を設定すると,システムサイズと MPI プロセス数に基づいて自動的に決定される.すべて正の値を指定した場合,その値が適用される.


num_omp_threads

  • デフォルト: -1

OpenMP 並列処理のスレッド数を指定する.負の値を設定すると,環境変数 OMP_NUM_THREADS の値が適用される.ただし,pmd が OpenMP 対応コンパイラ(例:gfortran-fopenmp オプション)でコンパイルされている場合のみ有効.


io_format

  • デフォルト: ascii

原子構造ファイルのフォーマットを ascii または binary のいずれかから選択できる. 大規模なシミュレーションを実行する場合,ファイルの読み書きを高速化するために binary を選択することを推奨する.


  • デフォルト: 1

シミュレーション中に出力される情報量を指定する.

  • 1:通常の MD 実行情報を出力
  • 100:デバッグ情報を含む詳細な出力

time_interval

  • デフォルト: 1.0

時間ステップの間隔(フェムト秒単位). 負の値を指定すると,可変時間ステップモードが有効になり,その絶対値が最大時間間隔 となる.


vardt_length_scale

  • デフォルト: 0.1

可変タイムステップモードにおける特徴的長さ を指定する.これによって時間間隔 が次のように決まる.


num_iteration

  • デフォルト: 0
  • 別名: num_steps

MD のステップ数を指定する. シミュレーション時間は time_interval × num_iteration で決まる.


num_out_energy

  • デフォルト: 1000

エネルギー情報の出力頻度を指定する.


min_iteration

  • デフォルト: 0
  • 別名: min_steps

最小のMDステップ数.構造最適化計算などで,必ず何ステップかは行いたい場合などに指定する.


flag_out_pos

  • デフォルト: 3
  • 別名: flag_out_pmd

原子構造の出力方法を指定する.

  • 0:出力しない
  • 1pmd フォーマット(pmd_####
  • 2:LAMMPS dump フォーマット(dump_####
  • 3:extxyz フォーマット

num_out_pos

  • デフォルト: 10
  • 別名: num_out_pmd

途中構造ファイルの出力数.


combine_out_pos

  • デフォルト: F (false)

構造ファイルを一つにまとめるか否か(rev230307以降).


flag_sort

  • デフォルト: 1

原子構造を出力する際に,原子の背番号(tag)に基づいて原子の順番を並べ替えるか否か.

  • 0 — Not to sort
  • 1 — Heap sort

dump_aux_order

  • デフォルト: ekin epot sxx syy szz syz sxz sxy

原子データの各行に記録される原子属性の順序(LAMMPS dump フォーマットを出力形式として選択した場合).

利用可能な原子属性は以下のとおり.

  • v? — 速度成分.?xy,または z のいずれか.これらのエントリは,以下のエントリより前に記述する必要がある.
  • f? — 原子に働く力.?x,y,zのいずれか.
  • ekin/eki — 運動エネルギー
  • epot/epi — ポテンシャルエネルギー
  • s?? — 応力テンソル成分.??xxyyzzyzxzxy のいずれか.
  • chg — 電荷
  • chi — 電気陰性度
  • tei — 電子温度
  • clr — カラー電荷

force_type

  • デフォルト: None

使用する原子間ポテンシャルを指定する. 利用可能なポテンシャルの例は以下のとおり.

  • LJ:Lennard-Jones ポテンシャル(Ar 系)
  • SW_Si:Stillinger-Weber ポテンシャル(Si 系)
  • Morse:Morse ポテンシャル(in.params.Morse が必要)
  • Coulomb:クーロンポテンシャル(in.params.Coulomb が必要)
  • DNN:ニューラルネットワークポテンシャル(in.params.desc および in.params.NN が必要)

flag_damping

  • デフォルト: 0

原子の速度に係数を掛けて速度を落としていくか否かのフラッグ.

  • 0 — ダンピングしない.
  • 1 — シンプルに係数 damping_coeff を掛ける.
  • 2 — FIRE algorithm を使って速度ダンピング.

damping_coeff

  • デフォルト: 0.9

ダンピング係数.


converge_eps

  • デフォルト: 1d-4

速度ダンピングを行う際のエネルギーに関する収束判定条件(eV).


converge_num

  • デフォルト: 1

何回連続で上記収束判定条件(converge_eps)が満たされたら収束と見なすかという値.


initial_temperature

  • デフォルト: -1.0

初期温度(K).負の値の場合は pmdini から速度を読み込む.


final_temperature

  • デフォルト: -1.0

最終温度(K).負の値の場合は無視される. 正の値の場合,初期温度から始まりnum_iterationの間に線形にターゲット温度が変化するように設定される.


temperature_control

  • デフォルト: none

温度制御法の指定.none, Berendsen, Langevin が設定可能.大文字・小文字は無視されるため,berendsen, Berendsen, BERENDSEN は同じ.


flag_multi_temp

  • デフォルト: F, .false.

原子グループ毎に異なるターゲット温度を設定するか否か.これが T の場合,temperature_target の指定方法が変化するので注意.


temperature_target

  • デフォルト: 300.0

ターゲット温度(K).次のように指定する.

temperature_target   300.0

flag_multi_tempT の場合,つぎのように,ifmv値毎にターゲット温度を設定できるような書き方になる.

temperature_target   1   300.0

temperature_limit

  • デフォルト: 1.0d+4

上限温度(K)の指定.これ以上の温度となったら,そのMDシミュレーションは正常でないと判断されて停止する.


temperature_relax_time

  • デフォルト: 100.0

温度制御における緩和時間(fs).


remove_translation

  • デフォルト: 0

並進運動量を0に補正するタイミングの指定.

  • N < 0 : 補正しない
  • N == 0 : 最初だけ補正する
  • N > 0 : Nステップ毎に補正する

stress_control

  • デフォルト: none

圧力制御(バロスタット)の種類を指定する. 利用可能な方法は以下のとおりです.

  • Berendsen / vc-Berendsen:可変セル Berendsen 法
  • vv-Berendsen:可変体積 Berendsen 法(セル形状を維持したまま体積のみを変更)

Beredsen法ではMDステップ毎に のようにしてcellベクトルを更新する.その は次のように計算されます.

ここで , , はそれぞれ圧縮率,緩和時間,ターゲット応力.詳細は Berendsenの論文1を参照のこと.


pressure_target

  • デフォルト: 0.0

目標圧力 を指定する(vv-Berendsen の場合のみ適用).


stress_target

デフォルト: 0.0 0.0 0.0 0.0 0.0 0.0

応力制御法が vc-BerendsenBerendsen の場合に,応力成分を指定する.左から順に xx, yy, zz, yz, xz, xy.3つだけ指定すると xx, yy, zz だけ制限して非対角要素には制御がかからないようになる.


stress_relax_time

  • デフォルト: 100d0

応力制御の緩和時間(fs).


stress_beta

  • デフォルト: 1d-2

Berendsen法による応力制御の圧縮率 (1/GPa).


cell_fix

デフォルト:

  F  F  F
  F  F  F
  F  F  F

ここで T と指定された h-matrix 成分は応力制御法の間も固定される.


cutoff_radius

  • デフォルト: 5.0

原子間ポテンシャルのカットオフ半径(Å).


mass

  • デフォルト: 元素ごとに自動設定

特定の元素の質量を手動で設定する場合,以下のように記述する.

mass   Si  28.0855
mass   He   4.00

boundary

  • デフォルト: ppp

各軸の境界条件を指定する.

  • p:周期境界条件
  • f:自由境界条件

flag_clrchg

  • デフォルト: .false.

カラー電荷非平衡MDを行うか否かのフラッグ.


clrfield

  • デフォルト: 0d0 0d0 0d0

カラー電荷に作用する外部電場ベクトル.


flag_lflux

  • デフォルト: .false.

局所イオン流れを計測するか否かのフラッグ.これが ON のときには out.lflux に出力される.


ndiv_lflux

  • デフォルト: 1 1 1

局所イオン流計測の局所領域を決定するための各辺の分割数.この情報は out.lflux の冒頭に出力される.


Footnotes

  1. Berendsen, C., Postma, P. M., Van Gunsteren, W. F., Dinola, A., & Haak, R. (1984). Molecular dynamics with coupling to an external bath, 81(8), 3684—3690.