強磁性体のNiをもとに、状態密度を軌道の重みで分けた部分状態密度を計算します。
擬ポテンシャルとして、ウルトラソフト型の Ni.pz-nd-rrkjus.UPF をダウンロードしました。
&control calculation='scf' prefix='Ni' pseudo_dir = './pseudo/' outdir='./tmp/' / &system ibrav=2, celldm(1) =6.48, nat=1, ntyp=1, nspin = 2, starting_magnetization(1)=0.7, ecutwfc = 24.0, ecutrho = 288.0, occupations = 'smearing' smearing = 'mp' degauss = 0.02 / &electrons conv_thr = 1.0e-10 mixing_beta = 0.7 / ATOMIC_SPECIES Ni 58.69 Ni.pz-nd-rrkjus.UPF ATOMIC_POSITIONS Ni 0.0 0.0 0.0 K_POINTS automatic 8 8 8 1 1 1
$ pw.x < Ni.scf.in > Ni.scf.out
k点を細かく取って、それぞれの点でのエネルギーを求めます。 Ni.scf.inをコピーして作成します。 変更箇所は以下の2ヶ所です。
&control calculation = 'nscf' prefix = 'Ni', pseudo_dir = './pseudo/' outdir = './tmp/' / &system ibrav = 2, celldm(1) = 6.48, nat = 1, ntyp = 1, nspin = 2, starting_magnetization(1) = 0.7, ecutwfc = 24.0, ecutrho = 288.0, nbnd = 8, occupations = 'smearing' smearing = 'mp' degauss = 0.02 / &electrons conv_thr = 1.0e-10 mixing_beta = 0.7 / ATOMIC_SPECIES Ni 58.69 Ni.pz-nd-rrkjus.UPF ATOMIC_POSITIONS Ni 0.0 0.0 0.0 K_POINTS automatic 12 12 12 0 0 0
$ pw.x < ni.nscf.in > ni.nscf.out
次に、状態密度を計算します。
&dos outdir = './tmp/' prefix = 'Ni' fildos = 'Ni.dos' Emin = 5.0, Emax = 25.0, DeltaE = 0.1 ngauss = 1, degauss = 0.02 /
変数 | 初期値 | 説明 |
---|---|---|
Emin | なし | 状態密度のプロットの下限エネルギー。単位はeV |
Emax | なし | 状態密度のプロットの上限エネルギー。単位はeV |
DeltaE | なし | 状態密度のプロットのエネルギーの刻み幅。単位はeV |
ngauss | 0 | ブロードニングの方法。0:Simple Gaussian, 1:Methfessel-Paxton, -1:“cold smearing” (Marzari-Vanderbilt-DeVita-Payne) |
degauss | なし | ブロードニングの幅。単位はRy |
$ dos.x < Ni.dos.in > Ni.dos.out
Ni.dos というファイルに、アップスピンとダウンスピン、それを合計したものの状態密度が出力されます。
最後に、状態密度を軌道ごとに分解します。 Ni.dos.inをコピーしてNi.pdos.inというファイル名にしてください。 変更箇所はありません。
&projwfc outdir = './tmp/' prefix = 'Ni' Emin = 5.0, Emax = 25.0, DeltaE = 0.1 ngauss = 1, degauss = 0.02 /
$ projwfc.x < Ni.pdos.in > Ni.pdos.out
Ni.pdos_atm#1(Ni)_wfc#1(s) にs軌道の部分状態密度が、Ni.pdos_atm#1(Ni)_wfc#2(d) にd電子の部分状態密度が、Ni.pdos_totに全状態密度が出力されます。 出力されたファイルでのd軌道の部分状態密度は、左から順にd3z2−r2, dzx, dzy, dx2−y2, dxyです。 詳しくはマニュアルを参照してください。
Ni.scf.inをコピーして、Ni.bands.inを作成する。 &control にある calculation を scf から bands に変更する。 K_POINTSをバンドの経路に変更する
&control calculation='bands' prefix='Ni' pseudo_dir = './pseudo/' outdir='./tmp/' / &system ibrav=2, celldm(1) =6.48, nat=1, ntyp=1, nspin = 2, starting_magnetization(1)=0.7, ecutwfc = 24.0, ecutrho = 288.0, occupations='smearing', smearing='mv', degauss=0.02 / &electrons conv_thr = 1.0e-10 mixing_beta = 0.7 / ATOMIC_SPECIES Ni 58.69 Ni.pz-nd-rrkjus.UPF ATOMIC_POSITIONS Ni 0.0 0.0 0.0 K_POINTS tpiba_b 3 1.0 0.0 0.0 40 gG 56 1.0 1.0 0.0 1
$ pw.x < Ni.bands.in > Ni.bands.out
projwfc.xを使って部分状態密度を計算する
&projwfc outdir = './tmp/' prefix = 'Ni' ngauss = 0, degauss = 0.036748 DeltaE = 0.01 kresolveddos = .true. filpdos = 'Ni.k' /
$ projwfc.x < Ni.kpdos.in > Ni.kpdos.out
すると Ni.kpdos.out というファイルの他に、Ni.k.pdos_tot, Ni.k.pdos_atm#1(Ni)_wfc#1(s), Ni.k.pdos atm#1(Ni)_wfc#2(d) というファイルができるはずである。 これはそれぞれ両方、 s電子のみ、d電子のみのk分解状態密度のデータである。
nscf計算でoccupations='tetrahedra'とすると、状態密度は自動的にテトラヘドロン法を使ったものになります。