postprocessing.plot_correlated_bands

Reads DMFT_ouput observables such as real-frequency Sigma and a Wannier90 TB Hamiltonian to compute spectral properties. It runs in two modes, either calculating the bandstructure or Fermi slice.

Written by Sophie Beck, 2021-2022

TODO: - extend to multi impurity systems - make proper use of rot_mat from DFT_Tools (atm it assumed that wannier_hr and Sigma are written in the same basis)

postprocessing.plot_correlated_bands.get_dmft_bands(n_orb, w90_path, w90_seed, mu_tb, add_spin=False, add_lambda=None, add_local=None, with_sigma=None, fermi_slice=False, qp_bands=False, orbital_order_to=None, add_mu_tb=False, band_basis=False, proj_on_orb=None, trace=True, eta=0.0, mu_shift=0.0, proj_nuk=None, **specs)[source]

Extract tight-binding from given w90 seed_hr.dat and seed.wout files, and then extract from given solid_dmft calculation the self-energy and construct the spectral function A(k,w) on given k-path.

Parameters:
n_orbint

Number of Wannier orbitals in seed_hr.dat

w90_pathstring

Path to w90 files

w90_seedstring

Seed of wannier90 calculation, i.e. seed_hr.dat and seed.wout

add_spinbool, default=False

Extend w90 Hamiltonian by spin indices

add_lambdafloat, default=None

Add SOC term with strength add_lambda (works only for t2g shells)

add_localnumpy array, default=None

Add local term of dimension (n_orb x n_orb)

with_sigmastr, or BlockGf, default=None

Add self-energy to spectral function? Can be either directly take a triqs BlockGf object or can be either ‘calc’ or ‘model’ ‘calc’ reads results from h5 archive (solid_dmft) in case ‘calc’ or ‘model’ are specified a extra kwargs dict has to be given sigma_dict containing information about the self-energy

add_mu_tbbool, default=False

Add the TB specified chemical potential to the lattice Green function set to True if DMFT calculation was performed with DFT fermi subtracted.

proj_on_orbint or list of int, default=None

orbital projections to be made for the spectral function and TB bands the integer refer to the orbitals read

tracebool, default=True

Return trace over orbitals for spectral function. For special post-processing purposes this can be set to False giving the returned alatt_k_w an extra dimension n_orb

etafloat, default=0.0

Broadening of spectral function, finitie shift on imaginary axis if with_sigma=None it has to be provided !=0.0

mu_shiftfloat, default=0.0

Manual extra shift when calculating the spectral function

proj_nuknumpy array, default [None]

Extra projections to be applied to the final spectral function per orbital and k-point. Has to match shape of final lattice Green function. Will be applied together with proj_on_orb if specified.

Returns:
tb_datadict

tight binding dict containing the kpoint mesh, dispersion / emat, and eigenvectors

alatt_k_wnumpy array (float) of dim n_k x n_w ( x n_orb if trace=False)

lattice spectral function data on the kpoint mesh defined in tb_data and frequency mesh defined in freq_dict

freq_dictdict

frequency mesh information on which alatt_k_w is evaluated

postprocessing.plot_correlated_bands.get_tb_bands(e_mat, proj_on_orb=[None], **specs)[source]

calculate eigenvalues and eigenvectors for given list of e_mat on kmesh

Parameters:
e_matnumpy array of shape (n_orb, n_orb, nk) or (n_orb, n_orb, nk, nk)
Returns:
e_valnumpy array of shape (n_orb, n_orb, nk) or (n_orb, n_orb, nk, nk)

eigenvalues as matrix

e_vecnumpy array of shape (n_orb, n_orb, nk) or (n_orb, n_orb, nk, nk)

eigenvectors as matrix