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, mu_tb, w90_path=None, w90_seed=None, TB_obj=None, 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 or alternatively given TB_obj, 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
- mu_tbfloat
Chemical potential of tight-binding calculation
- w90_pathstring
Path to w90 files
- w90_seedstring
Seed of wannier90 calculation, i.e. seed_hr.dat and seed.wout
- TB_objTB object
Tight-binding object from TB_from_wannier90
- 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