0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Atomic Simulation Environmentの使い方: 状態密度の計算・解析

Last updated at Posted at 2024-10-02

状態密度(DOS)

  • DOSの種類
    1. total DOS: 単にDOSというとこれ。全電子、s, p, dなどの角運動量成分を全て含む
    2. projected DOS: s, p, dなどの角運動量に分けたもの
    3. localized DOS: DOSを原子や原子種に分けたもの。2とは両立してよい
  • スピン分極した場合、上記は全てup成分とdown成分に分かれれる

ASEを使った描画例

  • ase.calculators.vaspVaspDosを使う (古いかもしれない)
from ase import Atoms, Atom
from ase.calculators.vasp import Vasp
from ase.calculators.vasp import VaspDos
import matplotlib.pylab as plt

h2 = Atoms("H2",[(0,0,0),(0,0,0.7)], cell=[10,10,10])
calc = Vasp(prec="normal", xc="pbe", kpts=[1,1,1])
h2.set_calculator(calc)
h2.get_potential_energy()

dos = VaspDos(efermi=calc.get_fermi_level())
energy = dos.energy
dos = dos.dos

plt.plot(energy, dos)
plt.show()
  • PDOSを得る場合
...
# to lm-decompose, set lorbit=11
calc = Vasp(prec="normal", xc="PBE", kpts=[1,1,1], lorbit=10)
...
iatom = 0
dos = VaspDos(efermi=calc.get_fermi_level())
pdos = dos.site_dos(iatom, orbital="s")
...

Localized DOS

  • 原子に射映したDOS
  • 作成する手法は主に3つ
    1. University of Texas, Henkelman groupのスクリプト(split_dos, sum_dos)などを使う
    2. ASEで原子ごとのDOSを取り出す
    3. VaspKitを用いる
  • 3.が一番楽

smeared DOSを作る場合

  • 通常のDOSはギザギザしすぎるのでsmearすることがおおい
  • Gaussian smearingなどを用いることがある
import numpy as np
from scipy.ndimage import gaussian_filter1d
import matplotlib.pyplot as plt

# localized DOS (LDOS) generated by VaspKit
a = np.loadtxt("PDOS_C_UP.dat")
plt.plot(a[:,0], gaussian_filter1d(a[:,2],sigma=4))
plt.show()
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?