STATE-senri

 ここではSTATE-senriについて少しだけメモ書きをする。
------------------------------------------------------------------------------
■ node数の決め方

出力ファイル(nfoutなど)を見ると下記の記述がある(たとえば、less nfout などとしてみる)。
 ===================================================
 ===       MPI PARALLELIZATION INFORMATION       ===
 ===================================================
 === TOTAL NUMBER OF K-POINTS          :      64 ===
 === K-POINT DIVISOR                   :       8 ===
 === TOTAL NUMBER OF BANDS             :      36 ===
 === BAND DIVISOR                      :       3 ===
 === TOTAL NUMBER OF G-VECTORS         :    2463 ===
 === G-VECTOR DIVISOR                  :       1 ===
 ===================================================

node = K-POINT DIVISOR * BAND DIVISOR となるように node 数を指定する。
export OMP_NUM_THREADS=16 は 16スレッド並列するが、node数の指定には関係ない。
※ 初心者は一度走らせて、この値を参考にnode数を指定してみるのもよい。
※ ダビッドソンは系が小さいときに収束が速い。一方、RMMは系が大きいときに収束が速い。RMMが常に収束が速いと考えるのは誤り。
------------------------------------------------------------------------------
■ 結果の見方
最後の部分を見たいとき: tail nfout
全体を見たいとき: less nfout
MDの結果をみたいとき: grep MD  nfout
全エネルギーの結果を見たいとき: grep ETOT nfout
スピンの結果を見たいとき: grep -i charge nfout
 Charge Density =  up  down  up+down として記述されている。
------------------------------------------------------------------------------
■ スラブモデルを用いたFe中にCを入れた計算(第一原理MDで計算する)
(Feの初期のスピンを少しupが多いようにしている)
http://www-cp.prec.eng.osaka-u.ac.jp/puki_state/index.php?%E8%A8%88%E7%AE%97%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9%2FSTATE%2FCO%20molecule  を参照

◇ スクリプトで書き換える部分
-----
ln -fs ~/STATE/gncpp/pot.C_pbe1 fort.37
ln -fs ~/STATE/gncpp/pot.Fe_pbe3 fort.38

mpiexec -stdin nfinp_1 -stdout nfout_1 ./STATE_A
mpiexec -stdin nfinp_2 -stdout nfout_2 ./STATE_A
mpiexec -stdin nfinp_3 -stdout nfout_3 ./STATE_A
mpiexec -stdin nfinp_4 -stdout nfout_4 ./STATE_A
mpiexec -stdin nfinp_5 -stdout nfout_5 ./STATE_A
mpiexec -stdin nfinp_6 -stdout nfout_6 ./STATE_A
-----
※ 擬ポテンシャルの後のfort.37の数値は、用いる擬ポテンシャルが増える毎に+1した値を記述する。

◇ 1. 入力ファイル(nfinp_1)
-----
   0 0 0 0 0 0
   5.5000 20.0000   2   6   6   : GMAX, GMAXP, NTYP, NATM, NATM2
   1  0  : number of space group, type of bravis lattice
   5.415  5.415  29.727  90.0   90.0  90.0  : a,b,c,alpha,beta,gamma
    8      8       1       2      2     1     : knx,kny,knz, k-point shift
    1   0   : NCORD, NINV,   : IWEI, IMDTYP, ITYP
       2.7075000000      2.7075000000      5.9150000000  1   1  1  0.0 0.0  0
       0.0000000000      0.0000000000      0.0000000000  1   0  2  0.0 0.0  0
       2.7075000000      2.7075000000      2.7075000000  1   1  2  0.0 0.0  0
       0.0000000000      0.0000000000      5.4150000000  1   1  2  0.0 0.0  0
       2.7075000000      2.7075000000      8.1225000000  1   1  2  0.0 0.0  0
       0.0000000000      0.0000000000     10.8300000000  1   1  2  0.0 0.0  0
    6  0.1500  51577.50 3 1 0.d0  : TYPE 1IATOMN,ALFA,AMION,ILOC,IVAN
   26  0.1500  51577.50 3 1 0.5d0  : TYPE 2IATOMN,ALFA,AMION,ILOC,IVAN
 0 0 0 0 0 : ICOND 0-MD, 1-CONT.MD, 2-WAVE FN,, 3-WAVE FN CONT.,  iconstpw
    0   1   : IPRE, IPRI
    10    200     0    57200.00  0 : NMD1, NMD2, iter_last, CPUMAX,ifstop
    1   1  : Simple=1,Broyd2=3,Blugel=6,    1:charge, 2:potential mix.
    0    1  0.01 : starting mixing, kbxmix,alpha
   0.60  0.50  0.60  0.70  1.00    : DTIM1, DTIM2, DTIM3, DTIM4, dtim_last
  30.00     2     1    0.10D-08  1.d-06  : DTIO ,IMDALG, IEXPL, EDELTA
  -0.0020  0.10D+02    0           : WIDTH,FORCCR,ISTRESS
ggapbe          2                 : XCTYPE, nspin
   1.00     3                     : destm, n_stm
 102  : NBZTYP 0-SF, 1-BK, 2-SC, 3-BCC, 4-FCC, 5-DIA, 6-HEX
    0   0   0   : NKX, NKY, NKZ
    0   0   0   : NKX2,NKY2,NKZ2
   36           : NEG
        1       : NEXTST(MB)
        0       : 0; random numbers, 1; matrix diagon
        2      0      0      0(MB) : imsd, i_2lm, i_sd2another, wksz for phase
        0       : evaluation of eko difference.0 = no ,1 = yes
        0
        0    0.0
-----
※ 他の系を計算する時には、基本的に 「 0 0 0 0 0 : ICOND 0-MD, 1-CONT.MD, 2-WAVE FN,, 3-WAVE FN CONT.,  iconstpw」の前の行までを計算する系にたいするものに書き換える。これらはVESTAで入力しているような結晶構造に関するデータである。NEGを使うバンド数に書き換える。
※ 0.0000000000      0.0000000000      0.0000000000  1   0  2  0.0 0.0  0 での x, y, z 座標の後の2場面が0だと原子位置を移動可能にしない。1だと移動可能にする。

◇ 2. diff nfinp_1 nfinp_2
15c15
<  0 0 0 0 0 : ICOND 0-MD, 1-CONT.MD, 2-WAVE FN,, 3-WAVE FN CONT.,  iconstpw
---
>  1 0 0 0 0 : ICOND 0-MD, 1-CONT.MD, 2-WAVE FN,, 3-WAVE FN CONT.,  iconstpw
19c19
<     0    1  0.01 : starting mixing, kbxmix,alpha
---
>     0    1  0.1 : starting mixing, kbxmix,alpha
※ 前回の電子構造を用いるように0->1にする。ミキシングパラメーター(前回と今回の結果の混ぜ具合)を大きくする。

◇ 3. diff nfinp_2 nfinp_3
17,19c17,19
<     10    200     0    57200.00  0 : NMD1, NMD2, iter_last, CPUMAX,ifstop
<     1   1  : Simple=1,Broyd2=3,Blugel=6,    1:charge, 2:potential mix.
<     0    1  0.1 : starting mixing, kbxmix,alpha
---
>     200   200     0    57200.00  0 : NMD1, NMD2, iter_last, CPUMAX,ifstop
>     3   1  : Simple=1,Broyd2=3,Blugel=6,    1:charge, 2:potential mix.
>     0   40  0.3 : starting mixing, kbxmix,alpha
※ 電子構造最適化の最大ステップ数を10から200にする。単純混合法からBroyden法(計算の収束が単純混合より速いと言われる)にミキシングの方法を変え、ミキシングに用いる履歴の回数を増加させる。ミキシング量を増加。

◇ 4. diff nfinp_3 nfinp_4
22c22
<   -0.0020  0.10D+02    0           : WIDTH,FORCCR,ISTRESS
---
>   -0.0020  0.10D-02    0           : WIDTH,FORCCR,ISTRESS
29c29
<         1       : NEXTST(MB)
---
>         0       : NEXTST(MB)
31c31
<         2      0      0      0(MB) : imsd, i_2lm, i_sd2another, wksz for phase
---
>         1      0      0      0(MB) : imsd, i_2lm, i_sd2another, wksz for phase
※ フォースが荒い値になっていたので厳しくする。nonlocal pseudopotential の計算方法を1のG-spaceから0のR-space(Davidsonの時には使用しない)に変更。imsd=2のDavidsonから、imsd=1のRMMにする。
※ 系が大きいときはR-spaceが有利。実空間だとポテンシャルを掛けるのに対角項だけで良くなるので系が大きくなると速い。

◇ 5. diff nfinp_4 nfinp_5
15c15
<  1 0 0 0 0 : ICOND 0-MD, 1-CONT.MD, 2-WAVE FN,, 3-WAVE FN CONT.,  iconstpw
---
>  1 1 0 0 0 : ICOND 0-MD, 1-CONT.MD, 2-WAVE FN,, 3-WAVE FN CONT.,  iconstpw
29c29
<         0       : NEXTST(MB)
---
>         1       : NEXTST(MB)
31c31
<         1      0      0      0(MB) : imsd, i_2lm, i_sd2another, wksz for phase
---
>         2      0      0      0(MB) : imsd, i_2lm, i_sd2another, wksz for phase
※  二つ目にある0を1にして前回の原子構造を用いるようにする。nonlocal pseudopotential の計算方法を0のR-space(Davidsonの時には使用しない)から1のG-spaceに変更。imsd=1のRMMからimsd=2のDavidsonにする。

◇ 6. diff nfinp_5 nfinp_6
15c15
<  1 0 0 0 0 : ICOND 0-MD, 1-CONT.MD, 2-WAVE FN,, 3-WAVE FN CONT.,  iconstpw
---
>  1 1 0 0 0 : ICOND 0-MD, 1-CONT.MD, 2-WAVE FN,, 3-WAVE FN CONT.,  iconstpw
29c29
<         0       : NEXTST(MB)
---
>         1       : NEXTST(MB)
31c31
<         1      0      0      0(MB) : imsd, i_2lm, i_sd2another, wksz for phase
---
>         2      0      0      0(MB) : imsd, i_2lm, i_sd2another, wksz for phase
21c21
<   30.00     2     1    0.10D-08  1.d-06  : DTIO ,IMDALG, IEXPL, EDELTA
---
>  500.00     4     1    0.10D-08  1.d-06  : DTIO ,IMDALG, IEXPL, EDELTA
※ MDでの仮想時間増加量を30->500 a.u. (40 a.u. 1 fs), アルゴリズムをquenched MDから DIIS MD へ。
------------------------------------------------------------------------------
■ broyden法
http://www.ae.keio.ac.jp/lab/soc/takeuchi/japla/works/regular/06/shimura0608.pdf
------------------------------------------------------------------------------
■ 実空間法での利点
  FFT(高速フーリエ変換)は並列化が難しい。実空間法ではFFTを必要としないために並列化での効率を挙げられる可能性がある。下記の文献に記載のあるように行列×行列積の形で処理することでO(N2)の計算速度を実現している。
[1] http://www2.ccs.tsukuba.ac.jp/ccs/colloquium/CS-colloquium/file/20090413_iwata.pdf
[2] http://www.nsc.riken.jp/sympo2007/poster-session/abstract/P-23iwata.pdf
 DFT 全体の計算量は部分対角化および Gram-Schmidt 直交化のO(N3)でスケールされるが、これらのルーチンはともに大部分の演算がBLAS3 レベルの行列×行列積の形で処理できるため非常に高い演算性能を引き出すことができ、実際これらの部分の計算時間はO(N2)のCGと大差ない程度に納まっている。
[3] http://www.dyn.ap.eng.osaka-u.ac.jp/CMD/CMD15/v4c.pdf
[4] http://www.cc.u-tokyo.ac.jp/support/press/news/VOL11/special/200902SP-tsuchida.pdf
[5] http://computics-material.jp/jpn/symposium/20110301/pdf/04_1740_1750_ono.pdf
[6] 実空間法: http://ja.wikipedia.org/wiki/%E5%AE%9F%E7%A9%BA%E9%96%93%E6%B3%95
[7] http://www.nsc.riken.jp/sympo2007/poster-session/indexing/iP-23iwata.pdf
------------------------------------------------------------------------------
QRコード
携帯用QRコード
アクセス数
ページビュー数
[無料でホームページを作成] [通報・削除依頼]