class Charge(filename='CHARGE.lobster')[source]

Bases: object

Class to read CHARGE files generated by LOBSTER :param filename: filename for the CHARGE file, typically “CHARGE.lobster”


get a Structure with Mulliken and Loewdin charges as site properties :param structure_filename: filename of POSCAR


Structure Object with Mulliken and Loewdin charges as site properties

class Cohpcar(are_coops=False, filename=None)[source]

Bases: object

Class to read COHPCAR/COOPCAR files generated by LOBSTER.

  • are_coops – Determines if the file is a list of COHPs or COOPs. Default is False for COHPs.

  • filename – Name of the COHPCAR file. If it is None, the default file name will be chosen, depending on the value of are_coops.

class Doscar(doscar='DOSCAR.lobster', vasprun='vasprun.xml', dftprogram='Vasp')[source]

Bases: object

Class to deal with Lobster’s projected DOS and local projected DOS. The beforehand quantum-chemical calculation was performed with VASP

  • doscar – DOSCAR filename, typically “DOSCAR.lobster”

  • vasprun – vasprun filename, typically “vasprun.xml”

  • dftprogram – so far only “vasp” is implemented


LobsterCompleteDos Object

List of Dict including numpy arrays with pdos. Access as pdos[atomindex]['orbitalstring']['Spin.up/Spin.down']
Dos Object of the total density of states
numpy array of the energies at which the DOS was calculated (in eV, relative to Efermi)
tdensities[Spin.up]: numpy array of the total density of states for the Spin.up contribution at each of the energies
tdensities[Spin.down]: numpy array of the total density of states for the Spin.down contribution at each of the energies

if is_spin_polarized=False: tdensities[Spin.up]: numpy array of the total density of states

Boolean. Tells if the system is spin polarized
class Fatband(filenames='.', vasprun='vasprun.xml', Kpointsfile='KPOINTS')[source]

Bases: object

reads in FATBAND_x_y.lobster files :param filenames: can be a list of file names or a path to a folder folder from which all “FATBAND_*” files will be read :type filenames: list or string :param vasprun: corresponding vasprun file :param Kpointsfile: KPOINTS file for bandstructure calculation, typically “KPOINTS” :param .. attribute: efermi :param efermi that was read in from vasprun.xml: :param .. attribute: eigenvals :param {Spin.up: [][],Spin.down:[][]}, the first index of the array

[][] refers to the band and the second to the index of the kpoint. The kpoints are ordered according to the order of the kpoints array. If the band structure is not spin polarized, we only store one data set under Spin.up.

  • attribute (.) – is_spinpolarized

  • that tells you whether this was a spin-polarized calculation (Boolean) –

  • attribute

    kpoints_array list of kpoint as numpy arrays, in frac_coords of the

    given lattice by default

  • attribute


    (dict) of {} this link a kpoint (in frac coords or

    cartesian coordinates depending on the coords).

    lattice object of reciprocal lattice as read in from vasprun.xml

    number of bands used in the calculation

    dict of orbital projections as {spin: array of dict}. The indices of the array are [band_index, kpoint_index]. The dict is then built the following way: {“string of element”: “string of orbital as read in from FATBAND file”} If the band structure is not spin polarized, we only store one data set under Spin.up.

    structure read in from vasprun.xml


returns a LobsterBandStructureSymmLine object which can be plotted with a normal BSPlotter

class Icohplist(are_coops=False, filename=None)[source]

Bases: object

Class to read ICOHPLIST/ICOOPLIST files generated by LOBSTER.

  • are_coops – Determines if the file is a list of ICOHPs or ICOOPs. Defaults to False for ICOHPs.

  • filename – Name of the ICOHPLIST file. If it is None, the default file name will be chosen, depending on the value of are_coops.


IcohpCollection object




icohplist compatible with older version of this class



class Lobsterin(settingsdict: dict)[source]

Bases: dict, monty.json.MSONable

This class can handle and generate lobsterin files Furthermore, it can also modify INCAR files for lobster, generate KPOINT files for fatband calculations in Lobster, and generate the standard primitive cells in a POSCAR file that are needed for the fatband calculations. There are also several standard lobsterin files that can be easily generated. :param settingsdict: dict to initialize Lobsterin

AVAILABLEKEYWORDS = ['COHPstartEnergy', 'COHPendEnergy', 'basisSet', 'cohpGenerator', 'gaussianSmearingWidth', 'saveProjectionToFile', 'basisfunctions', 'skipdos', 'skipcohp', 'skipcoop', 'skipPopulationAnalysis', 'skipGrossPopulation', 'userecommendedbasisfunctions', 'loadProjectionFromFile', 'forceEnergyRange', 'DensityOfEnergy', 'BWDF', 'BWDFCOHP', 'skipProjection', 'createFatband', 'writeBasisFunctions', 'writeMatricesToFile', 'realspaceHamiltonian', 'realspaceOverlap', 'printPAWRealSpaceWavefunction', 'printLCAORealSpaceWavefunction', 'noFFTforVisualization', 'RMSp', 'onlyReadVasprun.xml', 'noMemoryMappedFiles', 'skipPAWOrthonormalityTest', 'doNotIgnoreExcessiveBands', 'doNotUseAbsoluteSpilling', 'skipReOrthonormalization', 'forceV1HMatrix', 'useOriginalTetrahedronMethod', 'useDecimalPlaces', 'kSpaceCOHP']
BOOLEANKEYWORDS = ['saveProjectionToFile', 'skipdos', 'skipcohp', 'skipcoop', 'loadProjectionFromFile', 'forceEnergyRange', 'DensityOfEnergy', 'BWDF', 'BWDFCOHP', 'skipPopulationAnalysis', 'skipGrossPopulation', 'userecommendedbasisfunctions', 'skipProjection', 'writeBasisFunctions', 'writeMatricesToFile', 'noFFTforVisualization', 'RMSp', 'onlyReadVasprun.xml', 'noMemoryMappedFiles', 'skipPAWOrthonormalityTest', 'doNotIgnoreExcessiveBands', 'doNotUseAbsoluteSpilling', 'skipReOrthonormalization', 'forceV1HMatrix', 'useOriginalTetrahedronMethod']
FLOATKEYWORDS = ['COHPstartEnergy', 'COHPendEnergy', 'gaussianSmearingWidth', 'useDecimalPlaces']
LISTKEYWORDS = ['basisfunctions', 'cohpbetween', 'createFatband']
STRINGKEYWORDS = ['basisSet', 'cohpGenerator', 'realspaceHamiltonian', 'realspaceOverlap', 'printPAWRealSpaceWavefunction', 'printLCAORealSpaceWavefunction', 'kSpaceCOHP']

get dict


Diff function for lobsterin. Compares two lobsterin and indicates which parameters are the same. Similar to the diff in INCAR. :param other: Lobsterin object to compare to :type other: Lobsterin


dict with differences and similarities

classmethod from_dict(d)[source]

initalize from dict

classmethod from_file(lobsterin: str)[source]

lobsterin (str) – path to lobsterin


Lobsterin object

classmethod standard_calculations_from_vasp_files(POSCAR_input='POSCAR', INCAR_input='INCAR', POTCAR_input=None, dict_for_basis=None, option='standard')[source]

will generate Lobsterin with standard settings

  • POSCAR_input (str) – path to POSCAR

  • INCAR_input (str) – path to INCAR

  • POTCAR_input (str) – path to POTCAR

  • dict_for_basis (dict) – can be provided: it should look the following: dict_for_basis={“Fe”:‘3p 3d 4s 4f’, “C”: ‘2s 2p’} and will overwrite all settings from POTCAR_input

  • option (str) – ‘standard’ will start a normal lobster run where COHPs, COOPs, DOS, CHARGE etc. will be calculated ‘standard_from_projection’ will start a normal lobster run from a projection ‘standard_with_fatband’ will do a fatband calculation, run over all orbitals ‘onlyprojection’ will only do a projection ‘onlydos’ will only calculate a projected dos ‘onlycohp’ will only calculate cohp ‘onlycoop’ will only calculate coop ‘onlycohpcoop’ will only calculate cohp and coop


Lobsterin Object with standard settings

write_INCAR(incar_input='INCAR', incar_output='INCAR.lobster', poscar_input='POSCAR', further_settings=None)[source]

Will only make the run static, insert nbands, make ISYM=-1, set LWAVE=True and write a new INCAR. You have to check for the rest. :param incar_input: path to input INCAR :type incar_input: str :param incar_output: path to output INCAR :type incar_output: str :param poscar_input: :type poscar_input: str :param further_settings: A dict can be used to include further settings, e.g. {“ISMEAR”:-5} :type further_settings: dict

static write_KPOINTS(POSCAR_input='POSCAR', KPOINTS_output='KPOINTS.lobster', reciprocal_density=100, from_grid=False, input_grid=[5, 5, 5], line_mode=True, kpoints_line_density=20, symprec=0.01)[source]

writes a KPOINT file for lobster (no symmetry considered!, ISYM=-1) :param POSCAR_input: path to POSCAR :type POSCAR_input: str :param KPOINTS_output: path to output KPOINTS :type KPOINTS_output: str :param reciprocal_density: Grid density :type reciprocal_density: int :param from_grid: If True KPOINTS will be generated with the help of a grid given in input_grid. Otherwise, they will be generated from the reciprocal_density :type from_grid: bool :param input_grid: grid to generate the KPOINTS file :type input_grid: list :param line_mode: If True, band structure will be generated :type line_mode: bool :param kpoints_line_density: density of the lines in the band structure :type kpoints_line_density: int :param symprec: precision to determine symmetry :type symprec: float

static write_POSCAR_with_standard_primitive(POSCAR_input='POSCAR', POSCAR_output='POSCAR.lobster', symprec=0.01)[source]

writes a POSCAR with the standard primitive cell. This is needed to arrive at the correct kpath :param POSCAR_input: filename of input POSCAR :type POSCAR_input: str :param POSCAR_output: filename of output POSCAR :type POSCAR_output: str :param symprec: precision to find symmetry :type symprec: float

write_lobsterin(path='lobsterin', overwritedict=None)[source]

writes a lobsterin file :param path: filename of the lobsterin file that will be written :type path: str :param overwritedict: dict that can be used to overwrite lobsterin, e.g. {“skipdos”: True} :type overwritedict: dict

class Lobsterout(filename='lobsterout')[source]

Bases: object

Class to read in the lobsterout and evaluate the spilling, save the basis, save warnings, save infos :param filename: filename of lobsterout :param .. attribute: basis_functions

list of basis functions that were used in lobster run as strings

  • attribute (.) – basis_type list of basis type that were used in lobster run as strings

  • attribute – chargespilling list of charge spilling (first entry: result for spin 1, second entry: result for spin 2 or not present)

  • attribute – dftprogram string representing the dft program used for the calculation of the wave function

  • attribute – elements list of strings of elements that were present in lobster calculation

  • attribute – has_CHARGE Boolean, indicates that CHARGE.lobster is present

  • attribute – has_COHPCAR Boolean, indicates that COHPCAR.lobster and ICOHPLIST.lobster are present

  • attribute – has_COOPCAR Boolean, indicates that COOPCAR.lobster and ICOOPLIST.lobster are present

  • attribute – has_DOSCAR Boolean, indicates that DOSCAR.lobster is present

  • attribute – has_Projection Boolean, indcates that projectionData.lobster is present

  • attribute – has_bandoverlaps Boolean, indcates that bandOverlaps.lobster is present

  • attribute – has_density_of_energies Boolean, indicates that DensityOfEnergy.lobster is present

  • attribute – has_fatbands Boolean, indicates that fatband calculation was performed

  • attribute – has_grosspopulation Boolean, indicates that GROSSPOP.lobster is present

  • attribute – info_lines string with additional infos on the run

  • attribute – info_orthonormalization string with infos on orthonormalization

  • attribute – is_restart_from_projection Boolean that indicates that calculation was restartet from existing projection file

  • attribute – lobster_version string that indicates Lobster version

  • attribute – number_of_spins Integer indicating the number of spins

  • attribute – number_of_threads integer that indicates how many threads were used

  • attribute – timing dict with infos on timing

  • attribute – totalspilling list of values indicating the total spilling for spin channel 1 (and spin channel 2)

  • attribute – warninglines string with all warnings


Returns: LobsterDict with all the information stored in lobsterout