Spaces:
Runtime error
Runtime error
from pymatgen.io.vasp.outputs import Vasprun | |
from pymatgen.electronic_structure.plotter import BSPlotter | |
from pymatgen.electronic_structure.core import Spin | |
import matplotlib.pyplot as plt | |
def get_band_density_of_states(vasp_xml_path): | |
vasprun = Vasprun(vasp_xml_path) | |
# Extract total and projected DOS | |
total_dos = vasprun.complete_dos | |
# Access the energies and DOS values | |
energies = total_dos.energies - total_dos.efermi # Aligning energies with Fermi level | |
total_dos_values = total_dos.densities | |
return {"energies":energies,"total_dos_values":total_dos_values } | |
vasp_xml_path="/Users/voicutomut/Documents/GitHub/BespokeMaterials/DB/Databases/JARVIS/JARVIS2D/OPT-Bandst/JVASP-655/vasprun.xml" | |
b_dft=get_band_density_of_states(vasp_xml_path) | |
energies=b_dft["energies"] | |
total_dos_values=b_dft["total_dos_values"] | |
# Example: Plotting the total DOS | |
plt.plot(energies, total_dos_values[Spin.up], label='Spin Up') # Spin-up DOS | |
if "Spin.down" in total_dos_values: | |
plt.plot(energies, total_dos_values[Spin.down], label='Spin Down') # Spin-down DOS | |
plt.xlabel('Energy (eV)') | |
plt.ylabel('DOS') | |
plt.title('Total Density of States') | |
plt.legend() | |
plt.show() | |