5. Nose-Hoover Method

[Up] [Repository]

5.1 Temperature Controll

熱力学における自然な変数には、内部エネルギーや圧力、体積、温度やエントロピーなどがある。これらの変数は示量性の量と示強性の量にわけることができる。さて、「お互いにかけてエネルギーになる示量性の量と示強性の量の組」は共役な量と呼ばれる。

例えば体積Vと圧力P、エントロピーSと温度T、粒子数Nと化学ポテンシャルμが互いに共役であり、それぞれ前者が示量性、後者が示強性の量である。

さて、世の中の量は「a priori」に認める量と、その量から導かれる量の二種類があるのであった。我々は一般に示量性の量をa prioriに認めることが多い。例えば「長さ」は知っているものとするから、体積Vはa prioriに認め、共役な量である圧力Pはそこから導かれる量とする。個数Nも基本的な量として、相方である化学ポテンシャルμはそこから定義される量である。

分子動力学法では、示強性の量を制御したい場合がある。先ほど、圧力Pを制御するのに、共役な量の相方である体積Vをコントロールした。これはわかりやすい。

では、温度Tを制御するにはどうすればよいだろうか?圧力制御からの類推では、エントロピーをコントロールすることになるが、エントロピーとはどうやってコントロールすればよいのだろうか。そもそもエントロピーと温度、どちらが基本的な量であり、どちらを従属的な量であろうか?この問いへの回答は筆者の能力を超える。ここでは「両方の立場があり得る」とだけコメントしておく。例えば田崎さんの熱力学の教科書は温度を基本的な量に取ってエントロピーを導く形式であり、清水さんの教科書はエントロピーを基本的な量に取って温度を導く形式である。

いずれにせよ、「温度の制御」は、何を制御した結果が温度が制御されているのか、あまり自明でないことは指摘しておきたい。

さて、熱力学、統計力学などで、系のサイズが大きくなると、ミクロカノニカルとカノニカルの差が小さくなることを学んだであろう。従って、もし事前に所望の温度Tに対応する全エネルギーの期待値HTがわかっていたなら、エネルギーE=HTを与えて時間発展させれば、所望の温度における物理量の期待値が得られる。

しかし、そのためには、任意の温度におけるエネルギーの期待値がわかっていなければならない。

温度とエネルギーの関係は、比熱(specific heat)Cを用いて

C=ET

で表される。したがって、温度Tにおける全系のエネルギーEは、

E=H=0TCdT

で与えられる。

さて、エネルギーの期待値は分配関数Zを用いて

H=lnZβ=kBT2lnZT

で与えられる。すなわち、比熱の温度依存性C(T)がわかる、ということは、その系の分配関数Z(T)がわかる、ということと同義である。分配関数がわかるということは、その問題が解けているということになる。

もちろん、通常は分配関数をあらかじめ求めることは困難であるから、比熱の温度依存性もシミュレーションを行う前にはわからない。従って、ある温度Tにおけるエネルギーの期待値も事前にはわからないために、温度制御が必要になるのである。

これまで、多くの温度制御法が提案されてきた。

このうち、現在でも広く用いられているのはBerendsen、Nose-Hoover、そしてLangevinであろう。以下では、Nose-Hoover法について説明する。

5.2 Nose-Hoover Method

5.2.1 Nose’s Hamiltonian to Nose-Hoover Method

Andersenの方法では、系のサイズパラメタをスケールすることで圧力を制御した。同様に、能勢は時間をスケールすることで温度を制御する方法を考案した。

能勢のハミルトニアンは以下で与えられる。

HNose=H(p/s,q)+ps22Q+lnsβ

運動方程式は以下の通り。後で時間のスケールをする都合上、時間微分を陽に書いている。

dqdt=1s1H(p/s,q)dpdt=H(p/s,q)qdpsdt=ps21H(p/s,q)1sβdsdt=psQ

ただし、1は多変数関数の一つ目の変数に関する微分という意味である。

能勢の方法は、スケール変換された現実の系が指定温度のカノニカル分布に従うというものだが、時間のスケーリングが煩雑であった。そこで、HooverはNoseの運動方程式を変形し、簡単な形にした。

ここで、p/s=pdt=dt/sという変換を考える。

まず、qについて、p/s=pを考えると、

dqdt=1sHp

時間をtからtに変えると、

dqdt=Hp

次に、p=p/sについて考えてみよう。pを時間微分すると、

dpdt=1sdpdtps2dsdt=1sHqpspsQ

時間をtからtに変えると、

dpdt=Hqpζ

ただしζ=ps/Qである。

次に、ζの時間微分を考えよう。

dζdt=1Qdpsdt=1Q(ps21H(p/s,q)1sβ)=1Qs(pHp1β)

時間をtからtに変えると、

dζdt=1Q(pHp1β)

さて、あらためてt,pt,pと表記すると、運動方程式は

q˙=Hqp˙=Hppζζ˙=1Q(pHp1β) となり、これをNose-Hoover法と呼ぶ。この方程式が定常状態として指定の温度のカノニカル分布を持つことは後で証明する。

5.2.2 Nose’s Conserved Quantity

先程の運動方程式は(p,q,ζ)で閉じてしまい、sに関する式が含まれていなかった。これについて見てみよう。

もともと能勢のハミルトニアンはこのような形であった。

HNose=H(p/s,q)+ps22Q+lnsβ

この、最後のlns/βを改めてηと定義しよう。ηの時間微分は

dηdt=1βsdsdt=1βspsQ=ζβs

さらにtからtに移ると

dηdt=ζβ

これも含めれば運動方程式は、

q˙=Hqp˙=Hppζζ˙=1Q(pHp1β)η˙=ζβ

となる。(p,q,ζ)で運動方程式が閉じているので、ηの時間発展を計算する必要は無いが、ηまで考えると、もともとの能勢のハミルトニアン

HNose=H(p/s,q)+ps22Q+η

が時間不変量になっていることがわかる。もともと能勢の方法では、ハミルトンの運動方程式に従うために、能勢のハミルトニアンが保存量となっていたのだが、変数変換を行ってハミルトンの運動方程式でなくなった今でも、これは時間不変量のままとなっている。この量を能勢の保存量、もしくはNose-Hoover保存量と呼ぶことがある。

ηそのものは時間発展には不必要だが、Nose-Hoover保存量を見ることで時間発展の精度を確認するために計算される場合がある。

5.2.3 Different way to derive Nose-Hoover method

先程は能勢のハミルトニアンから導出された運動方程式を、変数変換することでNose-Hoover法が導出された。以下では逆に、「定常状態として指定の温度のカノニカル分布が実現するとしたら、運動方程式はどのような形でなければならないか」を考えてみよう。以下、簡単のために一自由度系を考える。

今、カノニカル分布を実現したいハミルトニアンH0(p,q)があるとする。実現したい分布は

f(p,q)exp(βH)

である。ただし、β=1/kTは逆温度である。この位相空間は(p,q)で張られている。

さて、この分布を直接実現するのは難しそうなので、自由度ζを追加し、拡大された位相空間(p,q,ζ)を考える。この空間で、ζも含めたカノニカル分布

fex(p,q,ζ)exp(βH)exp(βQζ22)

を考えよう。Qの意味は後述する。もしこの分布が実現されたなら、ζに関して積分してしまうことで、所望の分布fを得ることができる。

f0=fexdζexp(βH)

さて、拡大された位相空間(p,q,ζ)に、先程の分布関数fを定常状態に持つような運動方程式を導入したい。ハミルトンの運動方程式の場合には「作用を最小化する」という変分原理から運動方程式が導けたが、温度制御された系にはそのような変分原理は存在しないので、適当に決めることになる。

とりあえずハミルトニアンの運動方程式をなるべく修正しない方向で検討しよう。温度制御のため、運動量pと追加自由度ζの相互作用は必要であろう。そこで、以下のような運動方程式を考えてみる。

p˙=Hqϕp(p,ζ)q˙=Hpζ˙=ϕζ(p,q,ζ)

我々の目標は、このダイナミクスが拡張された空間でのカノニカル分布fexを定常状態に保つようにϕpϕζを決めることである。

いま、位相空間がΓ=(p,q,ζ)で張られており、そこに速度場Γ˙=(p˙,q˙,ζ˙)が定義されているとしよう。この空間の分布関数fexを考えると、分布関数と速度場の積Γ˙fexが流れ場Jとなる。確率の保存則から、分布関数は以下の連続の式を満たす。

fext=divJΓ˙fex

もしfexが定常状態なら時間微分がゼロとなるので、

div(Γ˙fex)=p(p˙fex)+q(q˙fex)+p(ζ˙fex)=0

ここで、

fexp=βHpfexfexq=βHqfexfexζ=βQζfex

であることに注意して、一つ一つ愚直に計算していくと、

p(p˙fex)=(2Hpqϕpp+βHpHq+βHpϕp)fexq(q˙fex)=(2HpqβHpHq)fexζ(ζ˙fex)=(ϕζζβQζϕζ)fex

となる。整理すると、

ϕpp+βHpϕp+ϕζζβQζϕζ=0

が満たされなければならない。ここで、ハミルトンの運動方程式由来の項が消えていることに注意しよう。ハミルトンの運動方程式が作る流れは非圧縮であるので、圧縮性流れに寄与しない。

さて、逆に上式が満たされれば、どのようなϕp,ϕζを与えようとも、カノニカル分布が定常状態に持つような運動方程式を作ることができる。

まず、簡単のためにϕζζに依存しないとしよう。すると

ϕζζ=0

となる。次に、pζの相互作用を決めるϕpについて、pζを含む最も簡単な非線形関数であるpζとしてしまおう。すると、満たすべき式は、

ζ+ζβpHpβQζϕζ=0

となる。ϕζについて解くと、

ϕζ=1Q(pHp1β)

以上から、運動方程式は

p˙=Hqpζq˙=Hpζ˙=1Q(pHp1β)

これはNose-Hoover法にほかならない。要するにNose-Hoover法とは、

に過ぎない。そこになんらかの物理的な意味を認めるかどうかは、研究者の間で意見が別れている。

5.2.4 Nose-Hoover Conserved Quantity

さて、Nose-Hoover法には、Noseのハミルトニアンに由来する保存量がある。この量を知らないものとして、導出してみよう。

まず、Nose-Hoover法が実現する、拡張された空間におけるカノニカル分布は以下のように書かれる。

fex(p,q,ζ)exp(βH)exp(βQζ22)

ここでHは、もともと我々がカノニカル分布を実現したいハミルトニアンであった。さて、これを見ると、拡張されたハミルトニアン

Hex=H+Qζ22

に対するカノニカル分布に見える。そこで、この拡張されたハミルトニアンの時間微分を計算してみよう。

Hex˙=H˙+Qζζ˙=Hpp˙+Hqq˙+ζ(pHp1β)=pζHp+pζHpζβ=ζβ

ほとんどの項がキャンセルするのだが、最後に少しゴミが残る。そこで、時間微分がこのゴミとキャンセルするような新たな自由度ηを導入しよう。

η˙=ζβ

定義から自明だが、Hex+ηは時間保存量となる。これは、Nose-Hoover保存量と一致する。能勢のハミルトニアンからNose-Hoover法を導出した時には、Nose-Hoover保存量は能勢のハミルトニアン由来という意味があったが、「分布関数がカノニカル分布になるべし」という立場からNose-Hoover法を導くと、拡張されたハミルトニアンの時間微分のゴミをキャンセルしただけのように見える。その物理的解釈については読者に委ねる。

5.3 Problems on Nose-Hoover method

Nose-Hoover法は実装が容易であり、他の熱浴(例えばVelocity Scaling法やBerendsenの方法)と違って厳密にカノニカル分布を定常状態に持つことから広く使われている。しかし、Nose-Hoover法で温度制御された系が、意図する状態にならない場合がある。広く知られているのは調和振動子にNose-Hoover法を適用するとエルゴード性が破れる例だが、他にもいくつか問題がある。以下ではNose-Hoover法を使う上での注意点について述べる。

5.3.1 Ergodicity of the Nose-Hoover Method

Nose-Hoover法が保証するのは「位相空間をボルツマン重みに比例して走る」ということだけである。さらに「軌道が位相空間をくまなく走る」という条件が満たされて初めて、定常状態が指定温度のカノニカル分布となる。この条件をエルゴード性と呼ぶ。

エルゴード性の定義は難しい。一般的には、時間平均とアンサンブル平均が等しいことを持ってエルゴード的であると定義する。逆に、時間平均とアンサンブル平均が一致しない場合、「エルゴード性が破れている」と表現する。厳密さを犠牲にした表現をすれば、力学系において「長時間極限で到達可能性のある領域全てに到達可能」であればエルゴード的、そうでなければ非エルゴード的と呼ぶ。

さて、Nose-Hoover法は条件によってはエルゴード性を失うことが知られている。以下では、エルゴード性を失うとはどういうことか、エルゴード性はなぜ失われるか、どうすればエルゴード性を回復するかを見てみよう。

一次元調和振動子系にNose-Hoover法を適用してみよう。質量を1、目標温度を1とすると、運動方程式は以下のようになる。

p˙=qpζq˙=pζ˙=1Q(p21)

さて、この運動方程式が、(p,q,ζ)空間でどのような流れを作っているか見てみよう。

まず、ハミルトンの運動方程式由来の流れは以下の通り。

p˙=qq˙=p

この系はC=p2+q2、すなわち原点を中心とした円軌道を時間不変量に持つ。従って、この運動方程式は(p,q)空間において、原点を中心として反時計回りに回転する流れを作っている。

Nose-Hoover法として追加された流れ場は以下の通り。

dpdt=pζdζdt=1Q(p21)

よく見ると、この微分方程式は変数分離形になっているために求積できる。

dpdζ=Qpζ(p21)

(p1p)dp=Qζdζ

ここから、以下の時間不変量を得る。

C=p22lnp+Qζ22

これは(p,ζ)空間において閉曲線を作っており、先程の運動方程式はその閉曲線上を走る、やはり回転する流れを作っている。

以上をまとめると、調和振動子+Nose-Hoover系は位相空間に以下のような流れ場を作っている。

調和振動子+Nose-Hoover法の流れ
調和振動子+Nose-Hoover法の流れ

さて、調和振動子系のハミルトニアンはH=p2/2+q2/2である。この系においてカノニカル分布が実現するとは、分布関数f(p,q)が、ボルツマン重み

fexp(βH)

に従うことだ。ここで、エネルギーが高ければ高いほど、その分布の実現確率は指数関数的に低くなるが、ゼロではないことに注意したい。これから、調和振動子系にNose-Hoover法を適用すると、系に非自明な保存量が構築され、その結果としてエネルギーに下限、上限ができるためにカノニカル分布が実現しないことを示す。

まず、(p,q)空間において回転しているので、極座標を取るのが自然であろう。以下のように(p,q)から(r,ζ)に変数変換する。

p=rcosθq=rsinθ

ここから(r,ζ,ζ)の運動方程式を導こう。

まず、r2/2=p2/2+q2/2であるから、両辺を時間で微分すると、

rr˙=pp˙+qq˙=p(qpζ)+pq=p2ζ=r2ζcos2θ

以上から、

r˙=rζcos2θζ˙=1Q(r2cos2θ1)

ここで、Qが十分に大きい場合、r,ζの運動はθに比べて非常に遅くなるであろう。そこで、θについて平均を取る(断熱近似)。

drdt=rζ2dζdt=1Q(r221)

これはr,ζに関して変数分離形になっている。

drdζ=rζ2Q(r2/21)

(r21r)dr=Qζ2dζ

ここから直ちに以下の時間不変量(第一積分)を得る。

C=r2lnr+Qζ2

さて、Qζ2はゼロより大きいので、

r2lnrC

ここでr2lnrr0もしくはrで無限大となり、その間に最小値を取るような下に凸な関数である。それがある閾値以下に制限されているということは、rのとり得る値に下限と上限が存在する、ということを意味する。

断熱近似によるエルゴード性の破れ
断熱近似によるエルゴード性の破れ

もともとH=r2/2であったから、これはエネルギーに非自明な下限と上限が設けられた、すなわち軌道が位相空間全体を埋め尽くさず、結果としてエルゴード性を失うことがわかる。

ここではQが大きいとして断熱近似を行ったが、実際にやってみるとQがある程度小さくても実効的に変数分離が起きて、エルゴード性が破れることがわかる。

たまに、エルゴード性が破れるのは系が単自由度である場合であり、多自由度系であれば問題ない、といった誤解を見かける。しかし、エルゴード性が破れるのは追加自由度ζが系の部分自由度と強く結合して非自明な保存量を構築するからであった。従って、多自由度系であっても同様なことが起き得るので注意が必要である。

この問題は早くから認識され、エルゴード性を回復する手法が提案された。最も簡単には、熱浴自由度を追加してしまう方法が考えられる。

代表的なものの一つはKinetic-Moments法で、これはpの高次のモーメントも制御する方法である。もう一つはNose-Hoover-Chain法で、追加自由度ζも、別の自由度で温度制御しよう、という方法だ。いずれも自由度が追加されているため、断熱近似しても変数分離形にならず、結果としてエルゴード性が破れない。

5.3.2 Non-uniform Steady State

Nose-Hoover法の問題として調和振動子でエルゴード性が破れる現象が有名であるが、実用上では他の現象が問題となることの方が多い。そのうちの一つは、「系の温度が非一様のまま定常状態となる」問題だ。

Nose-Hoover法が制御するのは「系全体の温度」つまり平均温度である。従って、平均温度が指定の温度になっていればNose-Hoover法から見れば温度が制御できているように見える。しかし、なんらかの原因により高温の領域と低温領域にわかれてしまい、それが定常化する場合がある。

典型例は相分離する系である。例えば液滴と気相の共存状態を作ろうとして、最初に真空中に液滴を置いて蒸発させることで定常状態を作ろうとすると、液滴は気化熱により温度が下がり、その分Nose-Hoover法は全体の温度を上げて対応しようとするため、低温の液滴と高温の蒸気に分かれて安定化してしまう。液滴と蒸気の相互作用は非常に弱いため、現実的な時間では温度が一様にならない。

温度が非一様のまま定常化
温度が非一様のまま定常化

上図は、二種の合金が相分離した例だ。Nose-Hoover法は全体だけを見て温度を制御した気になっているが、実はA原子とB原子それぞれの温度を見ると、異なる温度で固定されてしまっている。Langevin系では、全体も、A、B原子個別に見ても同じ温度に緩和していることがわかる。

この問題は、Nose-Hoover系のみならず、系全体の平均運動エネルギーを制御する熱浴(Velocity-Scaling, Berendsen, Kinetic-Momentsその他の他自由度熱浴)全てで起きる可能性がある。なお、Langevin熱浴は各自由度ごとに制御がかかるため、このような問題は生じない。

5.3.3 Non-trivial Oscillation

Nose-Hoover法は、新たに追加した自由度ζが、(p,ζ)空間に回転流れを作ることは既に述べた。Nose-Hoover法を用いると、この回転に由来する「振動」が系に導入される。

熱浴による振動
熱浴による振動

上左図は、熱浴をつけてない場合とつけた場合の系の温度の時間発展だ。熱浴をつけていない系はおよそ1.3の温度を持つが、熱浴でT=1に制御した系は、意図通り温度が1付近で揺らいでいるように見える。

この温度の時間変化をフーリエ変換し、パワースペクトルを見てみよう。熱浴をつけていない場合は、原点に強いピークが立つが、それ以外の成分はほとんどゼロ、すなわちこの系の温度ゆらぎは、ほぼホワイトノイズとみなすことができる。

しかし、熱浴をつけた場合は、スペクトルに熱浴由来のピークが立つ。静的な性質を調べている場合はあまり問題とならないが、何かのゆらぎやスペクトルを調べている場合には、熱浴由来の振動と干渉しないように十分に注意しなければならない。この問題は温度を一階の遅れで制御するNose-Hoover系特有の問題であり、Velocity-Scaling法やBerendsen法では起きない。

5.3.4 Slow relaxation of Configuration Temperature

温度には「運動温度(Kinetic Tempearture)」と「状態温度(Configuration Temperature)」があることは既に述べた。それぞれ

pHp=kBT

qHq=kBT

と定義され、カノニカル分布について部分積分すると上記の式が証明できる。これらは平衡状態では一致するが、非平衡状態では一般に一致しない。

我々が温度依存性を知りたいのは、運動エネルギー部分ではなく、状態部分であることが多い。Nose-Hoover法を始めとする多くの熱浴は、運動温度を制御することで、「そのうち状態温度も指定の温度に緩和するだろう」ということを期待するが、一般に運動温度に比べて状態温度の緩和は遅い。

二つの温度
二つの温度

上図は、FCCに組んだLJ原子系の運動温度と状態温度の緩和を見たものだ。なお、温度制御はしておらず、純粋にハミルトンの運動方程式を解いている(そのため、運動温度が振動していない)。二つの温度は最終的に一致するが、二つの温度が異なることがわかるであろう。

特に系が相分離する場合や、ガラス系に見られるような遅い構造緩和を持つ場合は、状態温度の緩和は非常に遅くなる。このような時、運動温度しかモニターしていないと、自分が意図する温度とはずれた状態温度における振る舞いを観測してしまうので注意が必要である。

この問題は、決定論熱浴だけでなく、Langevin法などの確率的熱浴でも起こり得る。