* アルミニウム [#tf4cfc82] この例ではバンド構造の計算方法を記述する。以下は5.6.3以降で有効である。 ** SCF計算 [#bf196ac3] - 入力ファイル: 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 **バンド計算 [#wd40d5bf] - 入力ファイル (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を用いて可視化すると以下のようになる。図は添付のスクリプトを実行することで作成した。 フェルミエネルギー、k点の数、バンドの数、プロットするバンドの数を聞かれるので、逐次入力することでband.dataが得られる。これをgnuplotあるいはxmgraceを用いて可視化すると以下のようになる。例えば $ gnuplot $ > plot 'band.data' 図は添付のスクリプトを実行することで作成した。 #ref(http://www-cp.prec.eng.osaka-u.ac.jp/puki_state/graph/band_Al.png,cener)