アルミニウム

この例ではバンド構造の計算方法を記述する。以下は5.6.3以降で有効である。

SCF計算

  • 入力ファイル: nfinp_scf
     0  0  0  0  0  0                      : I_CTRL(1:6) (DUMMY)
     4.00  8.00  1  1  1                   : GMAX GMAXP NTYP NATM NATM2
     221   2                               : NUM_SPACE_GROUP TYPE 
     7.60  7.60  7.60  90.00  90.00  90.00 : A B C ALPHA BETA GAMMA
     06    06    06    1    1    1         : N1 N2 N3 M1 M2 M3
     0     0                               : NCORD, NINV
     0.00  0.00  0.00  1    0    1         : CPS(1,1:3) IWEI IMDTYP ITYP
     13    0.50  26.98 6    1    0.2       : IATOMN ALFA AMION ILOC IVAN
     0  0  0  0  0                         : ICOND INIPOS INIVEL ININOS INIACC
     0  1                                  : IPRE IPRI 
     30 30 0  84200.00  0                  : NMD1 NMD2 LAST_ITER CPUMAX IFSTOP
     6  1                                  : WAY_MIX MIX_WHAT
     0  20 0.60                            : ITER_START KBXMIX  MIX_ALPHA
     0.20  0.30  0.20  0.20  0.20          : DTIM1 DTIM2 DTIM3 DTIM4 DTIM
     300.00      4     1     0.50D-09      : DTIO IMDALG IEXPL EDELTA   
     -0.0020     0.50D+03    0             : WIDTH FORCCR ISTRESS
    ggapbe     1                           : XCTYPE KSPIN
     2.00                                  : DESTM
     101                                   : NBZTYPE
     4  4  4                               : NKX NKY NKZ (DUMMY)
     4  4  4                               : NKX2 NKY2 NKZ2 (DUMMY)
     6                                     : KEG
     1                                     : NEXTST    
     0                                     : (DUMMY)
     2                                     : IMSD 
     0                                     : EVALUATE_EKO_DIFF
     0                                     : NPDOSAO
     0  0.000                              : SM_N DOPPING (DUMMY)
    STATEを実行し、電荷密度を得る。
    mpirun -np 4 ./STATE < nfinp_scf > nfout_scf

バンド計算

  • 入力ファイル (nfinp_band)
     0  0  0  0  0  0                      : I_CTRL(1:6) (DUMMY)
     4.00  8.00  1  1  1                   : GMAX GMAXP NTYP NATM NATM2
     221   2                               : NUM_SPACE_GROUP TYPE
     7.60  7.60  7.60  90.00  90.00  90.00 : A B C ALPHA BETA GAMMA
     06    06    06    1    1    1         : N1 N2 N3 M1 M2 M3
     0     0                               : NCORD, NINV
     0.00  0.00  0.00  1    0    1         : CPS(1,1:3) IWEI IMDTYP ITYP
     13    0.50  26.98 6    1    0.2       : IATOMN ALFA AMION ILOC IVAN
    22  0  0  0  0                         : ICOND INIPOS INIVEL ININOS INIACC
     0  1                                  : IPRE IPRI
     30 30 0  84200.00  0                  : NMD1 NMD2 LAST_ITER CPUMAX IFSTOP
     6  1                                  : WAY_MIX MIX_WHAT
     0  20 0.60                            : ITER_START KBXMIX  MIX_ALPHA
     0.20  0.30  0.20  0.20  0.20          : DTIM1 DTIM2 DTIM3 DTIM4 DTIM
     300.00      4     1     0.50D-09      : DTIO IMDALG IEXPL EDELTA
     -0.0020     0.50D+03    0             : WIDTH FORCCR ISTRESS
    ggapbe     1                           : XCTYPE KSPIN
     2.00                                  : DESTM
     101                                   : NBZTYPE
     4  4  4                               : NKX NKY NKZ (DUMMY)
     4  4  4                               : NKX2 NKY2 NKZ2 (DUMMY)
     6                                     : KEG
     1                                     : NEXTST
     0                                     : (DUMMY)
     2                                     : IMSD
     0                                     : EVALUATE_EKO_DIFF
     0                                     : NPDOSAO
     0  0.000                              : SM_N DOPPING (DUMMY)
    &KPOINTS_BAND
     NKSEG 4
     KMESH 40 20 20 20
     KPOINTS
     0.000 0.000 0.000
     0.000 0.500 0.500
     0.250 0.500 0.750
     0.500 0.500 0.500
     0.000 0.000 0.000
    &END

バンド計算を行うためには

  • ICOND=22

を指定し、&KPOINTS_BAND...&ENDで以下のパラメータを設定する。

  • NKSEG: バンドを計算するブリルアンゾーン中の高対称線(セグメント)の数
  • KMESH: 各セグメントでのメッシュ (KMESHの和+1が計算されるk点の合計数)
  • KPOINTS: このキーワード以下にNKSEG+1の高対称点を指定。今の例では
    (0,0,0) -> (0,/1/2,1/2) -> (1/4,1/2,3/4) -> (1/2,1/2,1/2) -> (0,0,0)
    に沿ってバンド構造が計算される。ここでk点は基本逆格子ベクトルを単位に入力する。カーテシアン座標で入力する場合はKPOINTSの代わりにKPOINTS CARTESIANを指定する。
    上の入力ファイルを使いSTATEを実行することでnon-selfconsistent計算を実行する。
    mpirun -np 4 ./STATE < nfinp_band > nfout_band
    入力ファイルで指定されたk点上での固有値がenergy.dataに出力される。
    energy.dataの可視化を容易にするためにフォーマットを変更する。ここではutil/bandutil/energy2bandを利用する。コマンドパスが指定されていると仮定し
    energy2band
    を実行。あるいは
    ${HOME}/STATE/src/state/util/bandutil/src/energy2band
    フェルミエネルギー、k点の数、バンドの数、プロットするバンドの数を聞かれるので、逐次入力することでband.dataが得られる。これをgnuplotあるいはxmgraceを用いて可視化すると以下のようになる。例えば
    $ gnuplot
    $ > plot 'band.data'
    図は添付のスクリプトを実行することで作成した。
    cener

添付ファイル: fileband-eps.gp 232件 [詳細]
トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-01-23 (月) 11:56:59 (459d)