next up previous contents index
Next: Kerker因子の自動決定 Up: SCF収束 Previous: SCF収束   Contents   Index

概要

OpenMX Ver. 3.9では、以下の7種類の電子密度混合法がキーワード「scf.Mixing.Type」により利用可能です。

最初の3種類の方法においては、密度行列を混合することで入力密度行列が生成されます。 密度行列は実空間での量とみなすことができ、(スピン)電子密度に容易に変換することが可能です。 一方、続く3種類の方法(Kerker, RMM-DIISK, RMM-DIISV)では、フーリエ空間で電子密度混合が行われます。 最後の方法(RMM-DIISH)はKohn-Shamハミルトニアンの混合が行われ、プラスUの計算や拘束条件付の 計算に有効な方法となっています。 「RMM-DIIS」、 「GR-Pulay」、 「RMM-DIISK」による混合法は全てPulay型混合法です。 一般的に、大きなギャップを持つ系ではどの混合法を使用してもSCF収束を達成することが可能です。 しかし、小さなギャップを持つ系や金属系では、SCF計算における電子密度の振動の問題(charge sloshing)がしばしば 深刻となることから、SCF収束を達成することは容易ではありません。 そのような困難な系に対応するために、「Kerker」、「RMM-DIISK」および「RMM-DIISV」による3種の混合法が利用可能です。 この3種の混合法は金属系のSCF収束を達成するための有効な方法です。 「Kerker」、「RMM-DIISK」または「RMM-DIISV」を使用する際には、SCF計算の収束を加速するために以下の処方が有用です。

SCF計算における電子密度の振動は一般に電子密度の長波長成分から生じています。 波数${\bf q}$の関数であるKerker重み$w_{\bf q}$を次式の内積計算に導入することで、この長波長成分からの 振動を抑制することができます。ここで振動の抑制度合はKerker因子$\alpha $を調整することで制御され、その値は キーワード「scf.Kerker.factor」で与えることができます。

$\displaystyle \langle A \vert B \rangle =
\sum_{\bf q} \frac{A_{\bf q}^* B_{\bf q}}{w_{\bf q}}$      

$\displaystyle w_{\bf q} = \frac{ \vert{\bf q}\vert^2}
{\vert {\bf q}\vert^2+ q_0^2}$      

$\displaystyle q_0 = \alpha \vert {\bf q}_{\rm min} \vert$      

ここで、 ${\bf q}_{\rm min}$は0ベクトルを除く最小の大きさを持つ${\bf q}$ベクトルです。 大きな$\alpha $は電子密度の振動を大幅に抑制しますが、収束が遅くなる可能性があります。 最適値は系に依存しますので、計算対象の系に適した値を、ユーザーが調整することが必要です。

さらに、「RMM-DIISK」の振る舞いは次のキーワードにより調整することができます。

   scf.Mixing.EveryPulay    5   # default = 1

Pulay型混合法の残差ベクトルは、混合ステップが累積するにつれてある特定の部分空間を張るだけとなり、 このため、その部分空間に直交した線型独立な新しいベクトル成分が導入されないために収束が困難になってきます。 この線形従属問題を回避する一つの方法は、Kerker混合の合間に時折Pulay型混合を行うことです。 この方法ではキーワード「scf.Mixing.EveryPulay」を使用して頻度を指定することができます。 例えば「scf.Mixing.EveryPulay=5」の場合、5回のSCF反復ごとにPulay混合が、他のステップではKerker型混合が行われます。 「scf.Mixing.EveryPulay=1」は従来のPulay型混合に対応します。 キーワード「scf.Mixing.EveryPulay」は「RMM-DIISK」に対してのみ使用でき、デフォルト値は「1」であることに注意して下さい。

SCF収束性を向上させるための上記の処方箋は多くの場合に有効です。 しかし、収束を加速させるために最も推奨されるのは以下の方法です。

RMM-DIIS、RMM-DIISK、RMM-DIISVなどのPulay型混合は準ニュートン法に基づいていることから、収束速度はいかに適切な近似ヘッセ(Hessian)行列を見つけられるかに依存します。 「scf.Mixing.History」を大きくするに従い、計算される近似ヘッセ行列の精度が向上する可能性があります。

7 は(a) シアル酸分子、(b) Pt$_{13}$クラスタ、 (c) Pt$_{63}$クラスタに対する7種類の混合法のSCF収束の比較を示しています。 密度行列もしくは電子密度の残差ノルムは「System.Name.out」ファイル内でNormRDとして記録されています。 またこの計算で用いた入力ファイルは「work」ディレクトリ内の「SialicAcid.dat」、「Pt13.dat」、「Pt63.dat」です。 図 7 に示された全ての系に対して「RMM-DIISK」と「RMM-DIISV」が頑健に動作していることがわかります。 SCF収束が極めて困難な場合では、大きな「scf.Kerker.factor」および 小さな「scf.Max.Mixing.Weight」を用いた「Kerker」の使用が必要となりますが、 多くの場合で、「RMM-DIISK」と「RMM-DIISV」が最良の選択となります。 図7には示されていませんが、我々の経験上、plus $U$法と拘束法には「RMM-DIISH」が適切です。


Figure 7: 5種類の電子密度混合法における密度行列もしくは電子密度の残差ノルムのSCF収束の過程。 (a) シアル酸分子、(b) Pt$_{13}$クラスタ、 (c) Pt$_{63}$クラスタ。 入力ファイルは「work」ディレクトリ内の「SialicAcid.dat」, 「Pt13.dat」、「Pt63.dat」。
\includegraphics[width=9.0cm]{SCF.eps}


next up previous contents index
Next: Kerker因子の自動決定 Up: SCF収束 Previous: SCF収束   Contents   Index