分子動力学法(MD)では、原子の動きを一度に長時間計算するのではなく、短い時間幅ずつ計算していきます。この1ステップで進める時間を時間刻み幅、または時間刻み(dt)と呼びます。
たとえば、dtを1 fs(フェムト秒、10⁻¹⁵秒)に設定すると、計算を1ステップ進めるたびに、シミュレーション上の時刻が1 fs進みます。ただし、計算した原子配置を毎ステップ保存するとは限りません。
前回は、MDにおける温度と圧力を、原子の運動や相互作用と結びつけて説明しました。今回は、その原子の運動を計算するとき、時間をどの幅で区切って進めるのかを見ていきます。計算する間隔とデータを保存する間隔を分けながら、dt、総ステップ数、トラジェクトリーの関係を説明します。
前回の記事はこちらです。

MDは短い時間幅ずつ原子を動かす
MDでは、各原子に働く力をもとに運動方程式を数値的に解き、位置や速度を少しずつ更新します。1回の更新で進める時間がdtです。たとえばdtが1 fsなら、1ステップごとに計算上の時刻が1 fs進みます。
dtが小さいほど、速い運動をより細かい時間間隔で計算できます。一方、同じ長さの物理時間を追うには、より多くのステップが必要です。dtを大きくすれば必要なステップ数は減りますが、大きすぎると原子の速い運動を十分に捉えられず、計算が不安定になったり、得られる物性値がdtに依存したりします。
ここでいう「ステップ」は計算を進める回数です。後述するファイルへの保存回数とは別の数です。
トラジェクトリーは時刻ごとの記録
MDのトラジェクトリーは、時刻順に並んだ原子配置などの記録です。各時刻の原子配置をスナップショットと考えれば、そのスナップショットをコマ送りすることで原子の動きをアニメーションとして表示できます。トラジェクトリーそのものが動画ファイルというわけではありません。
保存するデータの内容は出力設定やファイル形式によって異なります。座標だけを保存することもあれば、速度やセルの情報などを一緒に保存することもあります。解析に必要な量を後から取り出せるかどうかも、何を記録したかに左右されます。
dtと保存間隔は別々に設定する
原子の位置・速度は各ステップで更新されますが、その結果を毎回ファイルに書き出す必要はありません。通常は、たとえば「100ステップごと」のように、目的に合わせて保存間隔を設定します。
保存する時間間隔=dt×保存間隔(ステップ数)です。
たとえばdtが1 fsで、100ステップごとに配置を保存すれば、保存されたスナップショットの間隔は100 fsになります。途中の99ステップも計算はされていますが、その配置を保存していなければ、後から個々のフレームとして表示することはできません。可視化ソフトは、保存されたスナップショットを読み込んでアニメーションを作ります。
出力間隔を粗くすればファイルは小さくなります。ただし、速い振動や短時間の現象を見たい場合は、粗い間隔で保存したトラジェクトリーだけでは、その動きを十分に追えません。計算のdtを小さくすることと保存する間隔を短くすることは、別々に検討します。
総ステップ数から計算時間と保存枚数を求める
シミュレーションで扱う物理時間は、次のように計算できます。
総計算時間=dt×総ステップ数
dtを1 fs、総ステップ数を100万ステップとすると、総計算時間は100万 fs、つまり1 ns(ナノ秒)です。さらに100ステップごとに保存すれば、100 fsごとのスナップショットを約1万枚記録します。
この例では、計算は100万回進めていますが、保存するフレームは約1万枚です。「1 nsの計算をした」ことと「1 fsごとの全配置を保存した」ことは同じではありません。 保存したデータを使って可視化や統計解析を行う際は、解析したい現象に対して保存間隔が適切かも確認します。
dtは何を基準に選ぶのか
dtの目安は、系に含まれる速い運動を数値計算で追えるかで変わります。たとえば水素を含む分子では、C–H結合などの速い振動がdtを制限する場合があります。一方、金属結晶でも「重い原子だけだから大きなdtでよい」と一律には決められません。原子間相互作用、温度、圧縮や衝突のような状況によって必要な時間分解能は変わります。
また、結合の長さを固定するSHAKEなどの拘束を使うと、拘束なしの場合とは扱う運動が変わり、選べるdtも変わり得ます。MDソルバー、積分法、拘束アルゴリズムの実装や許容誤差も、設定を考えるうえで無視できません。
小さければ常に正解というわけではない
dtを小さくすると、同じ物理時間まで進めるためのステップ数が増え、計算時間も長くなります。必要以上に小さくするのではなく、数値的な精度と計算コストを見て決めます。
一方で、計算が止まらず、もっともらしいトラジェクトリーが得られたとしても、そのdtで結果が正しいとは限りません。実際には、NVE計算で全エネルギーの時間変化や揺らぎを確認し、さらにdtを小さくした条件と目的の物性を比較します。全エネルギーが一方向に変化していなくても、それだけでdtが適切とは判断できません。本番でNVTやNPTを使う場合は、その条件での物性のdt依存性も確認します。
dtごとのエネルギー保存性をどう比べるかは、LAMMPSを使った別の検証記事で扱う予定です。
まとめ
- dtは、MD計算を1ステップ進めるときの時間幅。
- 総計算時間はdtと総ステップ数の積で決まる。
- トラジェクトリーの保存間隔はdtとは別に設定する。dtが1 fsで100ステップごとに保存すれば、記録は100 fs間隔になる。
- 適切なdtは原子の重さだけでは決まらない。速い運動、相互作用、温度、拘束条件などを踏まえ、エネルギー保存性と目的物性への影響を確かめる。
コメント