最適化の過程は標準出力に書き出されます。以下の方法により、最適化の進行過程を確認して下さい。
ここでは便宜上、標準出力はファイル「stdout.std」に保存されていると仮定します。
以下で示す例は、「openmx*.*/work/wf_example」中の入力ファイル「Si.dat」を用いて、ユーザー各自が
同じ計算を実行することができます。
DISE
次の様にして、バンドのもつれをほどく処理(最適化の第1段階)の自己無撞着ループが確認できます。
% grep "DISE" stdout.std | Iter | Omega_I (Angs^2) | Delta_I (Angs^2) | ---> DISE | 1 | 18.371525257652| 18.371525257652| ---> DISE | 2 | 17.955767336391| -0.415757921261| ---> DISE | 3 | 17.659503060694| -0.296264275698| ---> DISE | 4 | 17.454033576174| -0.205469484520| ---> DISE | 5 | 17.311180447271| -0.142853128902| ---> DISE | 6 | 17.210945408916| -0.100235038355| ---> DISE | 7 | 17.139778800398| -0.071166608519| ---> DISE | 8 | 17.088603102826| -0.051175697572| ---> DISE | 9 | 17.051329329614| -0.037273773211| ---> DISE | 10 | 17.023842837298| -0.027486492316| ---> DISE ........ ..... ... .ここで、「Iter」は繰り返し数、「Omega_I」はスプレッド関数のゲージ不変部分、 「Delta_I」は隣接する2つのステップ間の「Omega_I」の差をそれぞれ意味します。 キーワード「Wannie.Dis.Conv.Criterion」に与えた収束条件が「Delta_I」に適用されます。
CONV
次の様にして、スプレッド関数のゲージ依存部分の最適化(最適化の第2段階)過程が確認できます。
% grep "CONV" stdout.std Opt Step |Mode of Gradient|d_Omega_in_steps| d_Omega | (in Angs^2) ---> CONV | SD 1 | 6.52434844E-01 | 5.41612774E-04 |-5.41340331E-04| ---> CONV | SD 2 | 6.51123660E-01 | 5.40524307E-04 |-5.40253165E-04| ---> CONV ..... ..... | SD 200 | 4.77499752E-01 | 3.96392019E-04 |-3.96271308E-04| ---> CONV |Opt Step |Mode of Gradient| d_Omega | (Angs^2) ---> CONV | CG 1 | 8.61043764E-01 | -3.24716990E-01| ---> CONV ..... ..... | CG 58 | 1.67083857E-12 | -5.37225101E-13| ---> CONV | CG 59 | 5.44431651E-13 | -1.98972260E-13| ---> CONV ************************************************************* ---> CONV CONVERGENCE ACHIEVED ! ---> CONV ************************************************************* ---> CONV CONVERGENCE ACHIEVED ! ---> SPRDここで、「Opt Step」はSD法またはCG法のどちらかにおける最適化ステップであり、「Mode of Gradient」は、スプレッド関数の勾配の絶対値です。 SD法では、ゲージ依存スプレッド関数における隣接する2つのステップ間の差が2つの異なる方法で計算されます。 その結果が「d_Omega_in_steps」および「d_Omega」です。「d_Omega_in_steps」は、
SPRD
次の様にして、ワニエ関数の広がりの変化を確認できます。
% grep "SPRD" stdout.std |Opt Step | Omega_I | Omega_D | Omega_OD | Tot_Omega | (in Angs^2) ---> SPRD | SD 1 | 16.93053479 | 0.13727387 | 6.57748455 | 23.64529321 | ---> SPRD | SD 2 | 16.93053479 | 0.13724827 | 6.57696989 | 23.64475295 | ---> SPRD | SD 3 | 16.93053479 | 0.13722279 | 6.57645620 | 23.64421378 | ---> SPRD | SD 4 | 16.93053479 | 0.13719743 | 6.57594347 | 23.64367569 | ---> SPRD ..... ..... | SD 199 | 16.93053479 | 0.13399285 | 6.48989479 | 23.55442243 | ---> SPRD | SD 200 | 16.93053479 | 0.13398326 | 6.48950811 | 23.55402616 | ---> SPRD |Opt Step | Omega_I | Omega_D | Omega_OD | Tot_Omega | (Angs^2) ---> SPRD | CG 1 | 16.93053479 | 0.15480701 | 6.14396737 | 23.22930917 | ---> SPRD | CG 2 | 16.93053479 | 0.17172507 | 5.87830203 | 22.98056189 | ---> SPRD | CG 3 | 16.93053479 | 0.17012089 | 5.78940789 | 22.89006357 | ---> SPRD ..... ..... | CG 57 | 16.93053479 | 0.16557875 | 5.73752928 | 22.83364282 | ---> SPRD | CG 58 | 16.93053479 | 0.16557876 | 5.73752928 | 22.83364282 | ---> SPRD | CG 59 | 16.93053479 | 0.16557876 | 5.73752928 | 22.83364282 | ---> SPRD ************************************************************* ---> SPRD CONVERGENCE ACHIEVED ! ---> SPRD ************************************************************* ---> SPRDここで、「Opt Step」はSD法またはCG法のどちらかにおける最適化ステップです。 「Omega_I」はスプレッド関数のゲージ不変部分です。 「Omega_D」はおよび「Omega_OD」は、それぞれゲージ依存の対角成分および非対角成分からの寄与です。 「Tot_Omega」は、スプレッド関数の上記3つの成分の総和です。
CENT
次の様にしてワニエ関数中心の変化を確認できます。
% grep "CENT" stdout.std WF 1 ( 1.14164289, 1.14164298, 1.14164266) | 2.95573380 --->CENT WF 2 ( 1.55716251, 1.55716342, 1.14164203) | 2.95572597 --->CENT WF 3 ( 1.55716191, 1.14164295, 1.55716190) | 2.95572978 --->CENT WF 4 ( 1.14164389, 1.55716087, 1.55716055) | 2.95572957 --->CENT WF 5 ( 0.20775982, 0.20775967, 0.20775893) | 2.95572677 --->CENT WF 6 ( 0.20776045,-0.20775959,-0.20775914) | 2.95572605 --->CENT WF 7 (-0.20775851, 0.20775981,-0.20775888) | 2.95572925 --->CENT WF 8 (-0.20775787,-0.20775767, 0.20775933) | 2.95573335 --->CENT Total Center ( 5.39761509, 5.39761243, 5.39760738) sum_spread 23.64583455 --->CENT SD 1 ------------------------------------------------------------------------> CENT WF 1 ( 1.14164582, 1.14164592, 1.14164559) | 2.95566613 --->CENT WF 2 ( 1.55715957, 1.55716049, 1.14164497) | 2.95565831 --->CENT WF 3 ( 1.55715897, 1.14164588, 1.55715897) | 2.95566211 --->CENT WF 4 ( 1.14164683, 1.55715794, 1.55715761) | 2.95566190 --->CENT WF 5 ( 0.20775689, 0.20775673, 0.20775599) | 2.95565910 --->CENT WF 6 ( 0.20775752,-0.20775666,-0.20775620) | 2.95565838 --->CENT WF 7 (-0.20775558, 0.20775687,-0.20775594) | 2.95566158 --->CENT WF 8 (-0.20775493,-0.20775474, 0.20775639) | 2.95566569 --->CENT Total Center ( 5.39761509, 5.39761243, 5.39760738) sum_spread 23.64529321 --->CENT SD 2 ------------------------------------------------------------------------> CENT ..... ..... CG 59 ------------------------------------------------------------------------> CENT WF 1 ( 1.14585349, 1.14584696, 1.14584386) | 2.85421846 --->CENT WF 2 ( 1.55295615, 1.55294970, 1.14584792) | 2.85422167 --->CENT WF 3 ( 1.55296133, 1.14584610, 1.55295139) | 2.85421070 --->CENT WF 4 ( 1.14584053, 1.55296761, 1.55296391) | 2.85417080 --->CENT WF 5 ( 0.20356211, 0.20355857, 0.20355600) | 2.85418933 --->CENT WF 6 ( 0.20355119,-0.20355008,-0.20355192) | 2.85422458 --->CENT WF 7 (-0.20355306, 0.20355395,-0.20355905) | 2.85420611 --->CENT WF 8 (-0.20355603,-0.20356000, 0.20355520) | 2.85420117 --->CENT Total Center ( 5.39761571, 5.39761281, 5.39760730) sum_spread 22.83364282 --->CENT「SD」または「CG」で始まる行に、最適化法とそのステップ数が示されています。 「WF」で始まる行は、各ワニエ関数の中心の(, , )座標をÅ単位で、またその広がりをÅ単位で示しています。 すべてのワニエ関数中心と広がりの総和を、「Total Center」で始まる行に示しています。