力場とポテンシャルエネルギーとは何か?MD計算で原子の動きを決めるルールを整理

解説シリーズMD編

分子動力学法(MD)を学び始めると、かなり早い段階で「力場」という言葉が出てきます。 ただ、この言葉は最初やや分かりにくいです。

  • 力場とは何を指しているのか
  • ポテンシャルとは何が違うのか
  • それがMD計算のどこに関係しているのか

この記事では、このあたりを整理します。 結論を先に言うと、力場は「原子をどう相互作用させ、どう動かすか」を決めるルールの集まりです。

前回の記事はこちらです。

量子化学計算とMD計算の違いとは?分子シミュレーションの2つの見方を整理
量子化学計算とMD計算の違いを、何を計算しているのか、何が分かるのか、どう使い分けるのかという観点から整理します。
スポンサーリンク

力場とは何か

MD計算では、原子を適当に動かしているわけではありません。 ある原子配置が与えられたときに、その配置に対してどんなエネルギーを持つか、どんな力が働くかを決める必要があります。

そのためのモデルが、力場です。

力場は一言でいえば、原子間相互作用を計算するためのモデル一式です。 どの原子同士がどのように引き合うか、反発するか、結合の長さや角度がどのようなエネルギーを持つか、といったルールがまとめて入っています。

通常のMDでよく使われるのは、古典力場です。 これは、電子状態をその都度量子力学的に計算するのではなく、原子核の運動を古典力学で扱い、その相互作用を経験的な式やパラメータで表したものです。

そのため、文脈によってはMDのことを古典MDと呼ぶこともあります。

ポテンシャルは配置で決まる位置エネルギーと考える

ポテンシャルという言葉は、まずは原子の配置で決まる位置エネルギーと考えると分かりやすいです。

高校物理では、位置エネルギーは「位置によって決まるエネルギー」として出てきます。 MDではそれを少し拡張して、1個の粒子の位置ではなく、系全体の原子配置によって決まるエネルギーとして考えると理解しやすいです。

つまりMDでいうポテンシャルエネルギーは、

  • 原子AとBの距離
  • 結合している原子の並び
  • 角度や二面角
  • 荷電粒子どうしの位置関係

などをまとめた配置全体に応じて決まります。

この意味で、「位置エネルギー」よりも、MDでは配置エネルギーに近い感覚で理解するとしっくりきます。 まずは馴染みのある「位置エネルギー」という言葉から入り、そこから「配置全体で決まる量」へイメージを広げると理解しやすくなります。

力場では全体のポテンシャルエネルギーを組み立てる

多くの力場では、系全体のポテンシャルエネルギー U を、いくつかの相互作用項の和として表します。

$$
U = U_{bond} + U_{angle} + U_{dihedral} + U_{LJ} + U_{coulomb}
$$

  • U_bond: 結合長に関する項
  • U_angle: 結合角に関する項
  • U_dihedral: 二面角に関する項
  • U_LJ: ファンデルワールス相互作用などを表す項
  • U_coulomb: 静電相互作用に関する項

もちろん、実際の力場によって項の形や数は異なります。 ただ、全体のポテンシャルエネルギーを複数の相互作用の和として表すという見方は、多くの古典力場に共通しています。

力はポテンシャルエネルギーの傾きから決まる

MDでは、ある配置に対してポテンシャルエネルギーが決まるだけでは不十分です。 その配置から、各原子にどちら向きの力がどれだけ働くかも必要です。

そこで出てくるのが、次の関係です。

$$
F = -\nabla U
$$

  • U: ポテンシャルエネルギー
  • F: 原子に働く力

直感的には、エネルギー地形の傾きに沿って原子が動くということです。 坂の上にあるボールが低いほうへ転がるイメージに近いです。

スポンサーリンク

ポテンシャルと力場はどう違うのか

この2つは似た文脈で使われますが、同じ意味ではありません。

最も簡単に言うと、

  • ポテンシャル: 原子配置に対してエネルギーを与える関数
  • 力場: そのポテンシャルを含めた、相互作用モデル全体

です。

ポテンシャルは「エネルギーの式」

ポテンシャルは、原子がどう配置されているときにエネルギーが高いか低いかを決めるものです。 たとえば、原子が近づきすぎると強く反発し、少し離れた位置で安定になる、という関係を式で表します。

ポテンシャルは、エネルギーの地形そのものと捉えると分かりやすいです。 古典力場では、その地形を結合項、角度項、二面角項、非結合項などの組み合わせとして表します。

力場は「計算に使うルール一式」

一方の力場は、単一の式だけを指すとは限りません。 実際には、

  • 結合の伸び縮み
  • 結合角の変化
  • 二面角の回転
  • ファンデルワールス相互作用
  • 静電相互作用

など、複数の相互作用をまとめて扱います。

さらに、それぞれに必要なパラメータも含めて、実際にMD計算を回すための形になっているものを力場と呼びます。

そのため、 ポテンシャルはエネルギーの考え方、力場はそれを実際の計算で使える形にまとめたもの と説明すると分かりやすいです。

スポンサーリンク

力場の中では何が計算されているのか

力場の中では、原子配置に応じていくつかのエネルギー項が計算されます。 細かい式の詳細は別記事に回すとして、ここでは全体像だけ押さえれば十分です。

代表的な相互作用

多くの力場では、たとえば次のような項を足し合わせて全体のエネルギーを作ります。

  • 結合長に関する項
  • 結合角に関する項
  • 二面角に関する項
  • 非結合相互作用に関する項

これらを合計して、その瞬間の原子配置に対するポテンシャルエネルギーが決まります。

ポテンシャルエネルギーは相対的に見る

同じ系・同じ力場の中では、一般にポテンシャルエネルギーが低い配置ほど安定な候補とみなされます。 逆に、高いエネルギーを持つ配置は不安定で、力によって別の配置へ動こうとします。

ただし、ここで見るべきなのは絶対値そのものよりも相対的な高低です。 原子数や組成、使っている力場、相互作用の扱いが異なる計算どうしでは、PotEng の値をそのまま比較しても意味を持たないことが多いです。

比較しやすいのは、たとえば次のように条件をそろえた場合です。

  • 同じ系・同じ力場で、構造Aと構造Bを比べる
  • 同じシミュレーションの中で、時間変化としてエネルギーを見る
  • 同じ定義のもとで、ある変化の前後のエネルギー差を見る
スポンサーリンク

実際のMD計算ではどこに出てくるのか

力場は概念として出てくるだけでなく、実際の計算設定そのものに直結しています。

入力ファイルでは力場の指定が必要になる

LAMMPSなどのMDソフトでは、どの力場を使うか、どの相互作用を有効にするか、どのパラメータを読むかを設定します。

つまり、力場を決めることは、原子がどう動くかのルールを決めることです。 ここが変われば、得られる構造や温度、圧力、拡散の傾向まで変わり得ます。

LAMMPSのThermo出力ではエネルギー項として現れる

LAMMPSでは、計算中の状態が thermo 出力に並びます。 ここで力場との関係を見るうえで重要なのが、PotEngTotEng です。

  • PotEng: その時点の原子配置に対するポテンシャルエネルギー
  • KinEng: 原子の運動に対応する運動エネルギー
  • TotEng: それらを合わせた全エネルギー

PotEng は、まさにその瞬間の原子配置に対して、力場が与えているエネルギーです。 原子配置が変われば PotEng も変わり、その傾きから各原子に働く力が決まります。

実際の thermo 出力を見ると、たとえば次のようになります。

Per MPI rank memory allocation (min/avg/max) = 20.28 | 20.28 | 20.28 Mbytes
   Step          Temp          Press          TotEng        Density         PotEng         KinEng
         0   295.56492     -324.92516     -4711.3596      0.98704079    -5591.5014      880.14188
      1000   296.8419      -476.0955      -4662.4152      0.99264869    -5546.3597      883.94448
      2000   296.83123     -1270.3522     -4618.5459      0.96376112    -5502.4586      883.91272
      3000   294.47596     -1045.2607     -4714.4476      0.97894187    -5591.3467      876.89912
      4000   300.59416      293.70299     -4650.5977      0.98493058    -5545.7158      895.11809
      5000   302.5457       203.01629     -4725.1968      1.0014175     -5626.1263      900.92944
      6000   301.48258     -233.8252      -4696.8448      0.97085571    -5594.6084      897.76364
      7000   287.74655     -380.12134     -4697.6618      0.99345752    -5554.5219      856.86008
      8000   307.41495     -469.59686     -4632.4132      0.97811379    -5547.8424      915.42924
      9000   302.74753      186.57795     -4627.305       0.98492432    -5528.8354      901.53045
     10000   300.73838      729.52328     -4708.8329      0.99270709    -5604.3805      895.54754
Loop time of 83.5752 on 1 procs for 10000 steps with 1500 atoms

この表では、各ステップごとに温度、圧力、全エネルギー、密度、ポテンシャルエネルギー、運動エネルギーが出ています。 ここで見るべきなのは、PotEng が力場と直接つながっている量だという点です。

もちろん、ログを見ただけで力場の中身が分かるわけではありません。 ただ、MD計算では「力場が原子配置に応じてポテンシャルエネルギーを与え、その結果が PotEng として現れる」と考えると、入力設定と出力結果のつながりが見えやすくなります。

また、PotEng を見るときは、値そのものだけでなく、時間とともに大きく下がり続けたり上がり続けたりしていないかも重要です。 平衡化が進むと、PotEng はある範囲で揺らぎながら落ち着くことが多く、これは平衡状態に近づいているかを見るための手がかりの一つになります。

スポンサーリンク

よくある誤解

力場は「力」そのものを直接書いたものではない

力場という名前から、力を直接指定しているように見えるかもしれません。 しかし実際には、多くの場合はまず原子配置に対するポテンシャルエネルギーの形を決め、そこから力を計算しています。

力場があれば何でも正しく計算できるわけではない

力場は、現実の原子の動きをそのまま完全に再現するものではありません。 どの系に向いているか、どのような現象をどこまで再現できるかには限界があります。

また、力場にはいくつか種類があり、対象とする系や見たい現象に合ったものを選ぶ必要があります。

そのため、MDの結果を見るときは 「この力場で、どんな前提のもとに計算しているか」 を意識する必要があります。

ポテンシャルは1個の原子の位置だけで決まるわけではない

MDでいうポテンシャルエネルギーは、1個の粒子の高さのような単純な話ではなく、系全体の原子配置で決まる量です。

この点を押さえると、「ポテンシャルエネルギー」という言葉の意味もつかみやすくなります。

スポンサーリンク

まとめ

力場とは、MD計算で原子どうしの相互作用を計算するためのモデル一式です。

理解のポイントをまとめると、次のようになります。

  • ポテンシャルは、原子の配置で決まる位置エネルギーと考えると分かりやすい
  • MDでは、そのポテンシャルエネルギーの傾きから力を計算する
  • 力場は、ポテンシャルを含む相互作用ルールとパラメータの集まりである
  • どの力場を使うかで、シミュレーション結果は変わりうる

最初の理解としては、 ポテンシャルは原子配置に対するエネルギー、力場はそのエネルギーを使って原子を動かすための実用的なルール一式 と捉えておけば十分です。

スポンサーリンク

関連記事

コメント

タイトルとURLをコピーしました