Skip to content

Commit

Permalink
[fix] simple Z estimate as linear fit
Browse files Browse the repository at this point in the history
  • Loading branch information
the-hampel committed Jun 20, 2023
1 parent 6ac1522 commit e8430df
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions python/solid_dmft/dmft_tools/observables.py
Original file line number Diff line number Diff line change
Expand Up @@ -598,13 +598,13 @@ def calc_bandcorr_man(general_params, sum_k, E_kin_dft):
def calc_Z(Sigma):
"""
calculates the inverse mass enhancement from the impurity
self-energy by a simple estimate:
[ 1 - (Im S_iw[n_iw0]/iw[n_iw0]) ]^-1
self-energy by a simple linear fit estimate:
[ 1 - ((Im S_iw[n_iw0+1]-S_iw[n_iw0])/(iw[n_iw0+1]-iw[n_iw0])) ]^-1
Parameters
----------
dft_mu: Gf_Im_Freq
self-energy in Matsubara
Sigma: Gf on MeshImFreq
self-energy on Matsubara mesh
Returns
Expand All @@ -621,8 +621,9 @@ def calc_Z(Sigma):

for orb in range(0,Sigma.target_shape[0]):
Im_S_iw = Sigma[orb,orb].data.imag
# simple extraction from S_iw_0
Z = 1/(1 - (Im_S_iw[n_iw0]/iw[n_iw0]) )
# simple extraction from linear fit to first two Matsubara freq of Sigma
# assuming Fermi liquid like self energy
Z = 1/(1 - (Im_S_iw[n_iw0+1]-Im_S_iw[n_iw0]) / (iw[n_iw0+1]-iw[n_iw0]) )
orb_Z.append(abs(Z))

return np.array(orb_Z)

0 comments on commit e8430df

Please sign in to comment.