aiida_vasp.utils.sumo#

Module for plotting the AiiDA BandsData using sumo.

Module Contents#

Functions#

get_sumo_dos_plotter

Get density of state by reading directly from the vasprun.xml file.

get_pmg_bandstructure

Return a pymatgen BandStructureSymmLine object from BandsData.

get_sumo_bands_plotter

Return a sumo SBSPlotter object

find_vbm

Find the fermi energy, put it at the top of VBM NOTE: this differs from the fermi energy reported in VASP when there is any electronic smearing.

find_cbm

Find the fermi energy, put it at the top of VBM NOTE: this differs from the fermi energy reported in VASP when there is any electronic smearing.

make_latex_labels

Convert labels to laxtex style

get_pymatgen_phonon_bands

Obtain a pymatgen phonon bandstructure plotter

get_sumo_phonon_plotter

Obtain a sumo phonon plotter object

bandstats

Extract fitting data for band extrema based on spin, kpoint and band.

get_efermi_from_band

Get the fermi energy from a BandsData node

API#

aiida_vasp.utils.sumo.get_sumo_dos_plotter(scf_node: aiida.orm.CalcJobNode, **kwargs) sumo.plotting.dos_plotter.SDOSPlotter#

Get density of state by reading directly from the vasprun.xml file.

Parameters:
  • scf_node (ProcessNode) – A node with retrieved output attached.

  • kwargs – additional parameters passed to load_dos function from sumo

Returns:

A SDOSPlotter object to be used for plotting the density of states.

Return type:

SDOSPlotter

aiida_vasp.utils.sumo.get_pmg_bandstructure(bands_node: aiida.orm.BandsData, structure: aiida.orm.StructureData = None, efermi: Optional[float] = None, **kwargs) pymatgen.electronic_structure.bandstructure.BandStructureSymmLine#

Return a pymatgen BandStructureSymmLine object from BandsData.

Parameters:
  • bands_node (BandsData) – A BandsData object

  • structure (StructureData, optional) – a StructureData object, required if bands_node does not have information about the cell.

  • efermi (float, optional) – Explicit value of the fermi energy.

  • kwargs – additional keyword arguments

Returns:

A BandStructureSymmLine object

Return type:

BandStructureSymmLine

aiida_vasp.utils.sumo.get_sumo_bands_plotter(bands: aiida.orm.BandsData, efermi: Optional[float] = None, structure: Optional[aiida.orm.StructureData] = None, **kwargs) sumo.plotting.bs_plotter.SBSPlotter#

Return a sumo SBSPlotter object

Parameters:
  • bands_node – A BandsData object

  • (optional) (structure) – a StructureData object, required if bands_node does not have information about the cell. efermi (float): Explicit value of the fermi energy.

Returns:

A SBSPlotter object

aiida_vasp.utils.sumo.find_vbm(bands: numpy.ndarray, occupations: numpy.ndarray, tol: float = 0.0001) float#

Find the fermi energy, put it at the top of VBM NOTE: this differs from the fermi energy reported in VASP when there is any electronic smearing.

aiida_vasp.utils.sumo.find_cbm(bands: numpy.ndarray, occupations: numpy.ndarray, tol: float = 0.0001) float#

Find the fermi energy, put it at the top of VBM NOTE: this differs from the fermi energy reported in VASP when there is any electronic smearing.

aiida_vasp.utils.sumo.make_latex_labels(labels: list) list#

Convert labels to laxtex style

aiida_vasp.utils.sumo.get_pymatgen_phonon_bands(band_structure: aiida.orm.BandsData, input_structure: aiida.orm.StructureData, has_nac: bool = False) pymatgen.phonon.bandstructure.PhononBandStructureSymmLine#

Obtain a pymatgen phonon bandstructure plotter

aiida_vasp.utils.sumo.get_sumo_phonon_plotter(band_structure: aiida.orm.BandsData, input_structure: aiida.orm.StructureData, has_nac: bool = False, imag_tol: float = -0.05) sumo.plotting.phonon_bs_plotter.SPhononBSPlotter#

Obtain a sumo phonon plotter object

aiida_vasp.utils.sumo.bandstats(bs: Union[pymatgen.electronic_structure.bandstructure.BandStructureSymmLine, aiida.orm.BandsData], num_sample_points: int = 3, temperature: Optional[float] = None, degeneracy_tol: float = 0.0001, parabolic: bool = True, structure: Optional[aiida.orm.StructureData] = None, efermi: Optional[float] = None, **kwargs)#

Extract fitting data for band extrema based on spin, kpoint and band.

NOTE: This function is modified based on sumo.cli.bandstats.band_stats

Searches forward and backward from the extrema point, but will only sample there data if there are enough points in that direction.

aiida_vasp.utils.sumo.get_efermi_from_band(bands_node: aiida.orm.BandsData) Optional[float]#

Get the fermi energy from a BandsData node