pymatgen绘制DOS

时间:2017-02-21 20:19:43

标签: python pymatgen

我试图用pymatgen绘制DOS(状态密度),但我无法使其工作。第一次遇到python中的selfclass函数,所以我很茫然。

这个link解释了具有我需要的功能的包(我需要使用类get_site_t2g_eg_resolved_dos(site)的{​​{1}}部分)。这个link包含这些函数的源代码。查看在线发现的examples我已经制作了此代码

CompleteDos

该代码返回错误,我确信这是因为函数from pymatgen.electronic_structure.dos import CompleteDos from pymatgen.electronic_structure.plotter import DosPlotter from pymatgen.electronic_structure.core import Spin, Orbital data = CompleteDos.get_site_t2g_eg_resolved_dos plot = DosPlotter(data) plot.get_plot(-5,5).show() 未正确使用。

即使您不知道pymatgen提供的链接,我认为您可以帮助我正确使用这些功能,我非常感激。提前谢谢!

编辑:我正在尝试的代码现在看起来如何,两者都离开,因为我不确定我是否正确地做事。

get_site_t2g_eg_resolved_dos

输出错误:

from pymatgen.electronic_structure.dos import CompleteDos
from pymatgen.electronic_structure.plotter import DosPlotter
from pymatgen.electronic_structure.core import Spin, Orbital
from pymatgen.io.vasp.outputs import Vasprun, Procar
from pymatgen.core.ion import Ion

vasprun = Vasprun("./vasprun.xml")

pdos = vasprun.pdos
tdos = vasprun.tdos
efermi = vasprun.efermi
energy = vasprun.eigenvalues
structure = vasprun.structures



a = CompleteDos(structure, tdos, pdos)
data = a.get_site_t2g_eg_resolved_dos(structure)
plot = DosPlotter(data)
plot.get_plot().show()

1 个答案:

答案 0 :(得分:0)

如果你还没有放弃,那就是解决方案

from pymatgen.electronic_structure.dos import CompleteDos
from pymatgen.electronic_structure.plotter import DosPlotter
from pymatgen.electronic_structure.core import Spin, Orbital
from pymatgen.io.vasp.outputs import Vasprun, Procar
from pymatgen.core.ion import Ion

vasprun = Vasprun("./vasprun.xml")

pdos = vasprun.pdos
tdos = vasprun.tdos
efermi = vasprun.efermi
energy = vasprun.eigenvalues
structure = vasprun.structures




data = vasprun.complete_dos.get_site_t2g_eg_resolved_dos(vasprun.structures[0][0])
plot = DosPlotter()
plot.add_dos("t2g",data['t2g'])

plot.show()

您需要指定站点和模式(t2g / eg)才能绘制。