SumkDFTTools.density_of_states(mu=None, broadening=None, mesh=None, with_Sigma=True, with_dc=True, proj_type=None, dosocc=False, save_to_file=True)[source]

Calculates the density of states and the projected density of states. The basis of the projected density of states is specified by proj_type.

The output files (if save_to_file = True) have two (three in the orbital-resolved case) columns representing the frequency and real part of the DOS (and imaginary part of the DOS) in that order.

The output files are as follows:

  • DOS_(spn).dat, the total DOS.

  • DOS_(proj_type)_(spn)_proj(i).dat, the DOS projected to an orbital with index i which refers to the index given in SK.shells (or SK.corr_shells for proj_type = “wann”).

  • DOS_(proj_type)_(sp)_proj(i)_(m)_(n).dat, As above, but printed as orbitally-resolved matrix in indices “m” and “n”. For example, for “d” orbitals, it gives the DOS separately for each orbital (e.g., d_(xy), d_(x^2-y^2), and so on).

mudouble, optional

Chemical potential, overrides the one stored in the hdf5 archive. By default, this is automatically set to the chemical potential within the SK object.

broadeningdouble, optional

Lorentzian broadening of the spectra to avoid any numerical artifacts. If not given, standard value of lattice_gf (0.001 eV) is used.

meshreal frequency MeshType, optional

Omega mesh for the real-frequency Green’s function. Given as parameter to lattice_gf.

with_Sigmaboolean, optional

If True, the self energy is used for the calculation. If false, the DOS is calculated without self energy. Both with_Sigma and with_dc equal to True is needed for DFT+DMFT A(w) calculated. Both with_Sigma and with_dc equal to false is needed for DFT A(w) calculated.

with_dcboolean, optional

If True the double counting correction is used.

proj_typestring, optional

The type of projection used for the orbital-projected DOS. These projected spectral functions will be determined alongside the total spectral function. By default, no projected DOS type will be calculated (the corresponding projected arrays will be empty). The following options are:

‘None’ - Only total DOS calculated ‘wann’ - Wannier DOS calculated from the Wannier projectors ‘vasp’ - Vasp orbital-projected DOS only from Vasp inputs ‘wien2k’ - Wien2k orbital-projected DOS from the wien2k theta projectors

dosoccboolean, optional

If True, the occupied DOS, DOSproj and DOSproj_orb will be returned. The prerequisite of this option is to have calculated the band-resolved density matrices generated by the occupations() routine.

save_to_fileboolean, optional

If True, text files with the calculated data will be created.

DOSDict of numpy arrays

Contains the full density of states with the form of DOS[spn][n_om] where “spn” speficies the spin type of the calculation (“up”, “down”, or combined “ud” which relates to calculations with spin-orbit coupling) and “n_om” is the number of real frequencies as specified by the real frequency MeshType used in the calculation. This array gives the total density of states.

DOSprojDict of numpy arrays

DOS projected to atom (shell) with the form of DOSproj[n_shells][spn][n_om] where “n_shells” is the total number of correlated or uncorrelated shells (depending on the input “proj_type”). This array gives the trace of the orbital-projected density of states. Empty if proj_type = None

DOSproj_orbDict of numpy arrays

Orbital-projected DOS projected to atom (shell) and resolved into orbital contributions with the form of DOSproj_orb[n_shells][spn][n_om,dim,dim] where “dim” specifies the orbital dimension of the correlated/uncorrelated shell (depending on the input “proj_type”). Empty if proj_type = None