Esempio n. 1
0
 def from_dos(cls, dos: CompleteDos):
     """
     :param dos: CompleteDos object with project element-orbital DOS. Can be obtained from Vasprun.get_complete_dos.
     :param sigma: Smearing for Gaussian.
     :return: XPS
     """
     total = np.zeros(dos.energies.shape)
     for el in dos.structure.composition.keys():
         spd_dos = dos.get_element_spd_dos(el)
         for orb, pdos in spd_dos.items():
             weight = CROSS_SECTIONS[el.symbol].get(str(orb), None)
             if weight is not None:
                 total += pdos.get_densities() * weight
             else:
                 warnings.warn(f"No cross-section for {el}{orb}")
     return XPS(-dos.energies, total / np.max(total))