NaCl結晶のBader電荷解析
Last Update:2021/12/09
電子密度を各原子からの寄与に分割する方法には様々なものがあります。その中でも、電子密度の勾配がゼロになる面で分割するBader解析は、Mulliken解析などに比べて基底関数への依存性が小さいなどの利点があり、よく使われている方法の1つです。ここではQuantum Espressoを使用して、NaCl結晶のBader解析を実行してみます。次の手順は、MateriApps Live!2.4でテスト済みです。
bader
プログラムのインストール
Quantum EspressoはMateriApps Live!にプリインストールされていますが、Bader解析を行うには、解析用のプログラムを別途インストールする必要があります。ここでは、Henkelman Groupのbader
プログラムを利用します:
$ wget http://theory.cm.utexas.edu/henkelman/code/bader/download/bader_lnx_64.tar.gz $ tar xzvf bader_lnx_64.tar.gz $ mv bader ~/bin
Quantum Espressoによる電子密度の自己無撞着計算
まず、全電子密度を得るため、Quantum Espressoで自己無撞着計算を行います。以下の入力ファイルを準備して、”NaCl.scf.in”という名前をつけましょう。
&control calculation = 'scf' prefix = 'NaCl' pseudo_dir = './' wf_collect = .true. / &system ibrav = 2 celldm(1) = 10.66 nat = 2 ntyp = 2 ecutwfc = 60 ecutrho = 244 / &electrons mixing_mode = 'plain' mixing_beta = 0.7 conv_thr = 1.0d-8 / ATOMIC_SPECIES Na 1 Na.pbesol-spn-kjpaw_psl.1.0.0.UPF Cl 1 Cl.pbesol-n-kjpaw_psl.1.0.0.UPF ATOMIC_POSITIONS Na 0.00 0.00 0.00 Cl 0.5 0.5 0.5 K_POINTS {automatic} 8 8 8 0 0 0
この例では、擬ポテンシャルとして、Quantum Espressoのホームページのpslibraryに公開されているPBEsolポテンシャルを使います:
- Cl: https://www.quantum-espresso.org/upf_files/Cl.pbesol-n-kjpaw_psl.1.0.0.UPF
- Na: https://www.quantum-espresso.org/upf_files/Na.pbesol-spn-kjpaw_psl.1.0.0.UPF
コマンドラインからは、以下のようなコマンドでダウンロードできます。
$ wget https://www.quantum-espresso.org/upf_files/Cl.pbesol-n-kjpaw_psl.1.0.0.UPF $ wget https://www.quantum-espresso.org/upf_files/Na.pbesol-spn-kjpaw_psl.1.0.0.UPF
Quantum Espressoを実行してみましょう。
$ pw.x < NaCl.scf.in > NaCl.scf.out
電子密度グリッドデータの出力
Quantum Espressoが正常に完了したことを確認したら、次に、Quantum Espressoの出力を電子密度ファイルに変換します。Quantum Espressoパッケージには、このためのツールpp.xが用意されています。 なお、Bader解析を実行するには、全電子密度と価電子密度の両方を準備する必要があります(その理由についてはこちらまたはこちらが参考になります)。価電子密度の入力ファイルは次のとおりです(NaCl_val.pp.inという名前にしましょう)。
&inputpp prefix = 'NaCl' outdir = './' filplot = 'NaCl_valence' plot_num= 0 / &plot nfile = 1 iflag = 3 output_format = 6 fileout = 'NaCl_valence.cube' /
全電子密度を出力するための入力ファイルは以下のようになります (NaCl_all.pp.in):
&inputpp prefix = 'NaCl' outdir = './' filplot = 'NaCl_allelec' plot_num= 21 / &plot nfile = 1 iflag = 3 output_format = 6 fileout = 'NaCl_allelec.cube' /
入力ファイルの最後に空行がないと、pp.xは読み込みに失敗しますので注意してください。この場合の2つの入力ファイルの最も重要な違いは、fileout
で指定されたファイルに書き込まれる物理量(全電子または価電子密度)を指定するplot_num
行です(その他のオプションについてはこちらを参照)。 pp.xを次のように実行します。
$ pp.x < NaCl_val.pp.in > NaCl_val.pp.out $ pp.x < NaCl_all.pp.in > NaCl_all.pp.out
Bader charge analysis
これで、Bader解析のための電子密度ファイル(*.cube)が準備できました。bader
プログラムを実行します。
$ bader NaCl_valence.cube -ref NaCl_allelec.cube
各原子のBader電荷はACF.datファイルに出力されます:
# X Y Z CHARGE MIN DIST ATOMIC VOL -------------------------------------------------------------------------------- 1 -10.660000 10.660000 10.660000 8.140837 1.940149 64.992061 2 -5.330000 5.330000 5.330000 7.859147 2.931500 237.846813 -------------------------------------------------------------------------------- VACUUM CHARGE: 0.0000 VACUUM VOLUME: 0.0000 NUMBER OF ELECTRONS: 16.0000
これは、16個の価電子のうち、8.14がNaに、7.86がClに割り当てられていることを示しています。これをイオンの価数に変換するには、内殻に固定されている電子の数を知る必要があります。
Na、Clの各擬ポテンシャルファイルの下記の行を確認します。
Valence configuration: nl pn l occ Rcut Rcut US E pseu 2S 1 0 2.00 1.000 1.250 -4.158089 3S 2 0 1.00 1.000 1.250 -0.198813 2P 2 1 6.00 0.900 1.300 -2.106125
Valence configuration: nl pn l occ Rcut Rcut US E pseu 3S 1 0 2.00 1.200 1.600 -1.515413 3P 2 1 5.00 1.300 1.600 -0.629258
ここでは、価電子として扱われている電子軌道が示されており、これらより内殻の電子が固定されていることになります。Naの擬ポテンシャルでは2個の1s電子が内殻軌道に固定されており、Clの擬ポテンシャルでは2個の1s電子、2個の2s電子、および6個の2p電子が内殻軌道に固定されていることが分かります。よって、Naの総電子数は(2 + 8.14)= 10.14、Clの総電子数は(2 + 2 + 6 + 7.86)= 17.86となります。 NaおよびClの原子番号からこれらの値を引くことで、各イオンの価数を計算することができます。最終的に、各イオンの価数はNa0.86+およびCl0.86-となります。これは、±1の形式電荷よりもわずかに小さく、典型的なイオン結晶と見なされるNaClの系でさえ、ある程度の共有結合性を有することを示しています。