import h5py
import matplotlib.pyplot as plt
import matplotlib
import numpy as np
import multifile
import os
matplotlib.rcParams["figure.dpi"] = 100
import matplotlib.pyplot as plt
SMALL_SIZE = 8
MEDIUM_SIZE = 12
BIGGER_SIZE = 14
plt.rc('font', size=BIGGER_SIZE) # controls default text sizes
plt.rc('axes', titlesize=BIGGER_SIZE) # fontsize of the axes title
plt.rc('axes', labelsize=BIGGER_SIZE) # fontsize of the x and y labels
plt.rc('xtick', labelsize=MEDIUM_SIZE) # fontsize of the tick labels
plt.rc('ytick', labelsize=MEDIUM_SIZE) # fontsize of the tick labels
plt.rc('legend', fontsize=MEDIUM_SIZE) # legend fontsize
plt.rc('figure', titlesize=BIGGER_SIZE) # fontsize of the figure title
plt.rcParams["font.family"] = "serif"
plt.rcParams["text.usetex"] = True
plt.rcParams["font.family"] = "cmr10", # Computer Modern Roman
#plt.rcParams.update({'font.family': 'serif', 'font.size': 14, 'font.weight': 'normal'})
dir_half_rightbottom = "/media/aiman/data/omega_influence/final_withrest_beta20_withrest_omega0_influence_halffilling_Ueffseq0"# "./final_beta20_hubbardholstein/halffilling_rightbottomcorner_small"
dir_half_lefttop = "/media/aiman/data/omega_influence/final_withrest_beta20_withrest_omega0_influence_halffilling_Ueffgeq0"
datnames_half_rightbottom = [dir_half_rightbottom + "/" + o for o in os.listdir(dir_half_rightbottom)]
datnames_half_lefttop = [dir_half_lefttop + "/" + o for o in os.listdir(dir_half_lefttop)]
#latest
#dir_doped_lefttop = r"./final_beta20_hubbardholstein/doping_lefttop_beta20Vh1p0U2p5"
#dir_doped_rightbottom = r"./final_beta20_hubbardholstein/doping_rightbottom_noM_beta20Vh2p2U1p7"
dir_doped_lefttop = r"/media/aiman/data/omega_influence/final_beta20_withrest_omega0_influence_doped_Ueffgeq0_small"
dir_doped_rightbottom = r"/media/aiman/data/omega_influence/final_beta20_withrest_omega0_influence_doped_Ueffseq0_small"
dir_doped_lefttop_no_se = r"/media/aiman/data/omega_influence/no_se_final_beta20_withrest_omega0_influence_doped_Ueffgeq0_small"
dir_doped_rightbottom_no_se = r"/media/aiman/data/omega_influence/no_se_final_beta20_withrest_omega0_influence_doped_Ueffseq0_small"
datnames_doped_lefttop = [dir_doped_lefttop + "/" + o for o in os.listdir(dir_doped_lefttop)]
datnames_doped_rightbottom = [dir_doped_rightbottom + "/" + o for o in os.listdir(dir_doped_rightbottom)]
datnames_doped_lefttop_no_se = [dir_doped_lefttop_no_se + "/" + o for o in os.listdir(dir_doped_lefttop_no_se)]
datnames_doped_rightbottom_no_se = [dir_doped_rightbottom_no_se + "/" + o for o in os.listdir(dir_doped_rightbottom_no_se)]
dir_half_rightbottom_acoustic = "/media/aiman/data/omega_influence/acoustic_beta20_withrest_omega0_influence_halffilling_Ueffleq0/"
dir_half_lefttop_acoustic = "/media/aiman/data/omega_influence/acoustic_beta20_withrest_omega0_influence_halffilling_Ueffgeq0/" #"./halffilling_lefttopcorner_small"
datnames_half_rightbottom_acoustic = [dir_half_rightbottom_acoustic + "/" + o for o in os.listdir(dir_half_rightbottom_acoustic)]
datnames_half_lefttop_acoustic = [dir_half_lefttop_acoustic + "/" + o for o in os.listdir(dir_half_lefttop_acoustic)]
dir_bubdiagnostics_doped_rightbottom = "/media/aiman/data/omega_influence/bubble_fluct_diag/final_beta20_withrest_omega0_influence_doped_Ueffseq0_fine_for_bubble_fluctdiag_small/"
dir_bubdiagnostics_doped_lefttop = "/media/aiman/data/omega_influence/bubble_fluct_diag/final_beta20_withrest_omega0_influence_doped_Ueffgeq0_fine_for_bubble_fluctdiag_small/" #"./halffilling_lefttopcorner_small"
datnames_bubdiagnostics_doped_rightbottom = [dir_bubdiagnostics_doped_rightbottom + "/" + o for o in os.listdir(dir_bubdiagnostics_doped_rightbottom)]
datnames_bubdiagnostics_doped_lefttop = [dir_bubdiagnostics_doped_lefttop + "/" + o for o in os.listdir(dir_bubdiagnostics_doped_lefttop)]
dir_doping_dependence = "/media/aiman/data/omega_influence/chi_vs_doping/"
datnames_doping_dependence = [dir_doping_dependence + "/" + o for o in os.listdir(dir_doping_dependence)]
GammaXM_path = []
def load(dat_names, drop=0, acoustic=False):
global GammaXM_path
objs = []
for dat_dir in dat_names:
print(dat_dir)
#print(dat_dir)
mf = multifile.MultiFile(dat_dir + '/')
obj = {}
idx_M = mf.params_file["Model/Special_points"].attrs["idx_M"]
idx_00 = mf.params_file["Model/Special_points"].attrs["idx_00"]
GammaXM_path = np.array(mf.params_file["Model/Special_paths/path_Gamma_X_M"])
obj['dir'] = dat_dir
obj['U'] = mf.params_file["Model"].attrs["U"]
obj['g0'] = mf.params_file["Model"].attrs["g0"]
obj['Omega0'] = mf.params_file["Model"].attrs["OMEGA0"]
obj['Vh'] = 2*obj['g0']*obj['g0']/obj['Omega0']
if not mf.is_finished:
print(dat_dir)
continue
#
# if not mf.is_diverged:
# drop = 0
# if drop == 0:
f = mf.open_final_file()
obj['filling'] = f["Flow_obs"].attrs['Filling']
obj['delta_mu'] = f["Flow_obs"].attrs["delta_mu"]
print(obj['filling'])
# else:
# f = mf.open_file_number(mf.scales_count - drop)
#print(f["Flow_obs/S_Wave_Susc_info"].attrs.keys())
#print(np.array(f["Flow_obs/S_Wave_Susc_info"].keys)[0, 0])
obj['leading_susc'] = f["Flow_obs/S_Wave_Susc_info"].attrs['Leading_name']
obj['max_sc'] = max(f['Flow_obs/Postprocessing_Susc_info/RE_Susc_sc'][0, :, 0, 0, 0, 0, 0, 0]) #f["Flow_obs/S_Wave_Susc_info"].attrs['RE_Max_sc'] # max(f['Flow_obs/Postprocessing_Susc_info/RE_Susc_sc'][0, :, 0, 0, 0, 0, 0, 0]) #
obj['max_d'] = max(f['Flow_obs/Postprocessing_Susc_info/RE_Susc_d'][0, :, 0, 0, 0, 0, 0, 0]) #f["Flow_obs/S_Wave_Susc_info"].attrs['RE_Max_d'] #max(f['Flow_obs/Postprocessing_Susc_info/RE_Susc_d'][0, :, 0, 0, 0, 0, 0, 0]) #
obj['max_m'] = max(f['Flow_obs/Postprocessing_Susc_info/RE_Susc_m'][0, :, 0, 0, 0, 0, 0, 0]) #f["Flow_obs/S_Wave_Susc_info"].attrs['RE_Max_m'] #max(f['Flow_obs/Postprocessing_Susc_info/RE_Susc_m'][0, :, 0, 0, 0, 0, 0, 0]) #
obj['max_sc_fl'] = f["Flow_obs/S_Wave_Susc_info"].attrs['RE_Max_sc'] # max(f['Flow_obs/Postprocessing_Susc_info/RE_Susc_sc'][0, :, 0, 0, 0, 0, 0, 0]) #
obj['max_d_fl'] = f["Flow_obs/S_Wave_Susc_info"].attrs['RE_Max_d'] #max(f['Flow_obs/Postprocessing_Susc_info/RE_Susc_d'][0, :, 0, 0, 0, 0, 0, 0]) #
obj['max_m_fl'] = f["Flow_obs/S_Wave_Susc_info"].attrs['RE_Max_m'] #max(f['Flow_obs/Postprocessing_Susc_info/RE_Susc_m'][0, :, 0, 0, 0, 0, 0, 0]) #
dsc = f['Flow_obs/Postprocessing_Susc_info/RE_Susc_sc'].shape[2] > 1
if dsc:
obj['max_dsc'] = max(f['Flow_obs/Postprocessing_Susc_info/RE_Susc_sc'][0, :, 1, 1, 0, 0, 0, 0])
obj['leading_w'] = f["Flow_obs/w_info"].attrs['Leading_name']
obj['max_w_sc'] = f["Flow_obs/w_info"].attrs['RE_Max_sc']
obj['max_w_d'] = f["Flow_obs/w_info"].attrs['RE_Max_d']
obj['max_w_m'] = f["Flow_obs/w_info"].attrs['RE_Max_m']
obj['lambda_sc'] = np.array(f["lambda_func/RE_SC"])[:, 0, :, 0]
obj['lambda_d'] = np.array(f["lambda_func/RE_D"])[:, 0, :, 0]
obj['lambda_m'] = np.array(f["lambda_func/RE_M"])[:, 136, :, 0]
obj['w_d'] = np.array(f["w_func/RE_D"])[:, 136]
obj['RE_Sigma'] = np.array(f["Sig/RE"])
obj['IM_Sigma'] = np.array(f["Sig/IM"])
obj["Sigma_momgrid"] = np.array(f["Sig/momgrid"])
obj["Sigma_fgrid"] = np.array(f["Sig/fgrid"])
f.close()
f = mf.open_final_file()
#print(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_d"].shape)
chi_split_objs = {}
for chan in ["sc", "d", "m"]:
if chan == "sc":
special_idx = idx_00
else:
special_idx = idx_M
contribs_from_minus_2U = None
if not acoustic:
contribs_from_minus_2U = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_bare_vertex".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0] + np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_sc_double_counting".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0] + np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_d_double_counting".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0] + np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_m_double_counting".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0]
else:
contribs_from_minus_2U = -2.0*np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_bare_vertex".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0]
chi_split_objs[("chi_{0}_fl".format(chan))] = np.array(f["Flow_obs/S_Wave_Susc_info/RE_Susc_{0}".format(chan)])[0, special_idx]
chi_split_objs[("chi_{0}_full".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0]
chi_split_objs[("chi_{0}_bubble".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_bubble_contribution".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0]
chi_split_objs[("chi_{0}_mbe".format(chan))] = -contribs_from_minus_2U/2.0
chi_split_objs[("chi_{0}_sbe_from_sc".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_nabla_sc".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0] + contribs_from_minus_2U/2.0
chi_split_objs[("chi_{0}_sbe_from_d".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_nabla_d".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0] + 0.5 * contribs_from_minus_2U/2.0
chi_split_objs[("chi_{0}_sbe_from_m".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_nabla_m".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0] + 1.5 * contribs_from_minus_2U/2.0
if "RE_Susc_{0}_vertex_contribution_from_M_m".format(chan) in f["Flow_obs/Postprocessing_Susc_info/"].keys():
chi_split_objs[("chi_{0}_sbe_from_Mm".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_M_m".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0]
chi_split_objs[("chi_{0}_sbe_from_Md".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_M_d".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0]
chi_split_objs[("chi_{0}_sbe_from_Msc".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_M_sc".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0]
if dsc:
special_idx = idx_00
chan = 'sc'
contribs_from_minus_2U = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_bare_vertex".format(chan)])[0, special_idx, 1, 1, 0, 0, 0, 0] + np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_sc_double_counting".format(chan)])[0, special_idx, 1, 1, 0, 0, 0, 0] + np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_d_double_counting".format(chan)])[0, special_idx, 1, 1, 0, 0, 0, 0] + np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_m_double_counting".format(chan)])[0, special_idx, 1, 1, 0, 0, 0, 0]
chi_split_objs[("chi_d{0}_fl".format(chan))] = 0.0*np.array(f["Flow_obs/S_Wave_Susc_info/RE_Susc_{0}".format(chan)])[0, special_idx]
chi_split_objs[("chi_d{0}_full".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}".format(chan)])[0, special_idx, 1, 1, 0, 0, 0, 0]
chi_split_objs[("chi_d{0}_bubble".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_bubble_contribution".format(chan)])[0, special_idx, 1, 1, 0, 0, 0, 0]
chi_split_objs[("chi_d{0}_mbe".format(chan))] = -contribs_from_minus_2U/2.0
chi_split_objs[("chi_d{0}_sbe_from_sc".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_nabla_sc".format(chan)])[0, special_idx, 1, 1, 0, 0, 0, 0] + contribs_from_minus_2U/2.0
chi_split_objs[("chi_d{0}_sbe_from_d".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_nabla_d".format(chan)])[0, special_idx, 1, 1, 0, 0, 0, 0] + 0.5 * contribs_from_minus_2U/2.0
chi_split_objs[("chi_d{0}_sbe_from_m".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_nabla_m".format(chan)])[0, special_idx, 1, 1, 0, 0, 0, 0] + 1.5 * contribs_from_minus_2U/2.0
if "RE_Susc_{0}_vertex_contribution_from_M_m".format(chan) in f["Flow_obs/Postprocessing_Susc_info/"].keys():
chi_split_objs[("chi_d{0}_sbe_from_Mm".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_M_m".format(chan)])[0, special_idx, 1, 1, 0, 0, 0, 0]
chi_split_objs[("chi_d{0}_sbe_from_Md".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_M_d".format(chan)])[0, special_idx, 1, 1, 0, 0, 0, 0]
chi_split_objs[("chi_d{0}_sbe_from_Msc".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_M_sc".format(chan)])[0, special_idx, 1, 1, 0, 0, 0, 0]
f.close()
obj['chi_split'] = chi_split_objs
objs.append(obj)
return objs
objs_halffillingrightbottom = sorted(load(datnames_half_rightbottom, drop=10) , key=lambda o1: o1['Omega0'])
objs_halffillinglefttop = sorted(load(datnames_half_lefttop, drop=10) , key=lambda o1: o1['Omega0'])
objs_doped_lefttop = sorted(load(datnames_doped_lefttop, drop=10), key=lambda o1: o1['Omega0'])
objs_doped_rightbottom = sorted(load(datnames_doped_rightbottom, drop=10), key=lambda o1: o1['Omega0'])
objs_doped_lefttop_no_se = sorted(load(datnames_doped_lefttop_no_se, drop=10), key=lambda o1: o1['Omega0'])
objs_doped_rightbottom_no_se = sorted(load(datnames_doped_rightbottom_no_se, drop=10), key=lambda o1: o1['Omega0'])
objs_halffillingrightbottom_acoustic = sorted(load(datnames_half_rightbottom_acoustic, drop=10, acoustic=True) , key=lambda o1: o1['Omega0'])
objs_halffillinglefttop_acoustic = sorted(load(datnames_half_lefttop_acoustic, drop=10, acoustic=True) , key=lambda o1: o1['Omega0'])
objs_bubdiagnostics_doped_rightbottom = sorted(load(datnames_bubdiagnostics_doped_rightbottom) , key=lambda o1: o1['Omega0'])
objs_bubdiagnostics_doped_lefttop = sorted(load(datnames_bubdiagnostics_doped_lefttop) , key=lambda o1: o1['Omega0'])
#objs_finitedoping = load(dat_names_finitedoping, drop=5)
#at_vh_u = lambda vh, u : (lambda obj: abs(obj["Vh"] - vh) < 0.01 and abs(obj["U"] - u) < 0.01)
#objs_finitedoping_vh2p5_u0 = sorted(list(filter( at_vh_u(2.5, 0), objs_finitedoping)) , key=lambda o1: o1['Omega0'])
#objs_finitedoping_vh2p5_u2 = sorted(list(filter( at_vh_u(2.5, 2), objs_finitedoping)) , key=lambda o1: o1['Omega0'])
#objs_finitedoping_vh2p5_u3 = sorted(list(filter( at_vh_u(2.5, 3), objs_finitedoping)) , key=lambda o1: o1['Omega0'])
/media/aiman/data/fluctuation_diag/anti_withrest_beta20_withrest_omega0_influence_halffilling_Ueffseq0/dat__g02_OMEGA010_U1p5_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.49999692650283395
/tmp/ipykernel_30316/1552136659.py:14: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
GammaXM_path = np.array(mf.params_file["Model/Special_paths/path_Gamma_X_M"])
/tmp/ipykernel_30316/1552136659.py:56: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
obj['lambda_sc'] = np.array(f["lambda_func/RE_SC"])[:, 0, :, 0]
/tmp/ipykernel_30316/1552136659.py:57: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
obj['lambda_d'] = np.array(f["lambda_func/RE_D"])[:, 0, :, 0]
/tmp/ipykernel_30316/1552136659.py:58: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
obj['lambda_m'] = np.array(f["lambda_func/RE_M"])[:, 136, :, 0]
/tmp/ipykernel_30316/1552136659.py:60: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
obj['w_d'] = np.array(f["w_func/RE_D"])[:, 136]
/tmp/ipykernel_30316/1552136659.py:61: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
obj['RE_Sigma'] = np.array(f["Sig/RE"])
/tmp/ipykernel_30316/1552136659.py:62: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
obj['IM_Sigma'] = np.array(f["Sig/IM"])
/tmp/ipykernel_30316/1552136659.py:63: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
obj["Sigma_momgrid"] = np.array(f["Sig/momgrid"])
/tmp/ipykernel_30316/1552136659.py:64: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
obj["Sigma_fgrid"] = np.array(f["Sig/fgrid"])
/tmp/ipykernel_30316/1552136659.py:78: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
contribs_from_minus_2U = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_bare_vertex".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0] + np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_sc_double_counting".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0] + np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_d_double_counting".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0] + np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_m_double_counting".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0]
/tmp/ipykernel_30316/1552136659.py:82: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_{0}_fl".format(chan))] = np.array(f["Flow_obs/S_Wave_Susc_info/RE_Susc_{0}".format(chan)])[0, special_idx]
/tmp/ipykernel_30316/1552136659.py:83: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_{0}_full".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0]
/tmp/ipykernel_30316/1552136659.py:84: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_{0}_bubble".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_bubble_contribution".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0]
/tmp/ipykernel_30316/1552136659.py:86: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_{0}_sbe_from_sc".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_nabla_sc".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0] + contribs_from_minus_2U/2.0
/tmp/ipykernel_30316/1552136659.py:87: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_{0}_sbe_from_d".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_nabla_d".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0] + 0.5 * contribs_from_minus_2U/2.0
/tmp/ipykernel_30316/1552136659.py:88: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_{0}_sbe_from_m".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_nabla_m".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0] + 1.5 * contribs_from_minus_2U/2.0
/tmp/ipykernel_30316/1552136659.py:91: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_{0}_sbe_from_Mm".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_M_m".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0]
/tmp/ipykernel_30316/1552136659.py:92: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_{0}_sbe_from_Md".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_M_d".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0]
/tmp/ipykernel_30316/1552136659.py:93: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_{0}_sbe_from_Msc".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_M_sc".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0]
/media/aiman/data/fluctuation_diag/anti_withrest_beta20_withrest_omega0_influence_halffilling_Ueffseq0/dat__g02_OMEGA010000_U1p5_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.49999910275727694 /media/aiman/data/fluctuation_diag/anti_withrest_beta20_withrest_omega0_influence_halffilling_Ueffseq0/dat__g02_OMEGA00p1_U1p5_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.5000080695832649 /media/aiman/data/fluctuation_diag/anti_withrest_beta20_withrest_omega0_influence_halffilling_Ueffseq0/dat__g02_OMEGA00p01_U1p5_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.5000024980389293 /media/aiman/data/fluctuation_diag/anti_withrest_beta20_withrest_omega0_influence_halffilling_Ueffseq0/dat__g02_OMEGA01_U1p5_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.49999647539249775 /media/aiman/data/fluctuation_diag/anti_withrest_beta20_withrest_omega0_influence_halffilling_Ueffseq0/dat__g02_OMEGA0100_U1p5_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.4999901408322835 /media/aiman/data/fluctuation_diag/anti_withrest_beta20_withrest_omega0_influence_halffilling_Ueffseq0/dat__g02_OMEGA01000_U1p5_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.499999012885428 /media/aiman/data/fluctuation_diag/anti_withrest_beta20_withrest_omega0_influence_halffilling_Ueffgeq0/dat__g01p4_OMEGA010000_U2p2_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.4999866658100453 /media/aiman/data/fluctuation_diag/anti_withrest_beta20_withrest_omega0_influence_halffilling_Ueffgeq0/dat__g01p4_OMEGA00p1_U2p2_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.5000084727199458 /media/aiman/data/fluctuation_diag/anti_withrest_beta20_withrest_omega0_influence_halffilling_Ueffgeq0/dat__g01p4_OMEGA01_U2p2_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.4999919942536689 /media/aiman/data/fluctuation_diag/anti_withrest_beta20_withrest_omega0_influence_halffilling_Ueffgeq0/dat__g01p4_OMEGA01000_U2p2_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.49998793819066395 /media/aiman/data/fluctuation_diag/anti_withrest_beta20_withrest_omega0_influence_halffilling_Ueffgeq0/dat__g01p4_OMEGA00p01_U2p2_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.5000093123369569 /media/aiman/data/fluctuation_diag/anti_withrest_beta20_withrest_omega0_influence_halffilling_Ueffgeq0/dat__g01p4_OMEGA0100_U2p2_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.4999969604365495 /media/aiman/data/fluctuation_diag/anti_withrest_beta20_withrest_omega0_influence_halffilling_Ueffgeq0/dat__g01p4_OMEGA010_U2p2_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.49998776278655566 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/final_beta20_withrest_omega0_influence_doped_Ueffgeq0_small/dat__g01_OMEGA01000_U2p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.3916818360211912
/tmp/ipykernel_30316/1552136659.py:98: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
contribs_from_minus_2U = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_bare_vertex".format(chan)])[0, special_idx, 1, 1, 0, 0, 0, 0] + np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_sc_double_counting".format(chan)])[0, special_idx, 1, 1, 0, 0, 0, 0] + np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_d_double_counting".format(chan)])[0, special_idx, 1, 1, 0, 0, 0, 0] + np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_m_double_counting".format(chan)])[0, special_idx, 1, 1, 0, 0, 0, 0]
/tmp/ipykernel_30316/1552136659.py:100: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_d{0}_fl".format(chan))] = 0.0*np.array(f["Flow_obs/S_Wave_Susc_info/RE_Susc_{0}".format(chan)])[0, special_idx]
/tmp/ipykernel_30316/1552136659.py:101: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_d{0}_full".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}".format(chan)])[0, special_idx, 1, 1, 0, 0, 0, 0]
/tmp/ipykernel_30316/1552136659.py:102: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_d{0}_bubble".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_bubble_contribution".format(chan)])[0, special_idx, 1, 1, 0, 0, 0, 0]
/tmp/ipykernel_30316/1552136659.py:104: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_d{0}_sbe_from_sc".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_nabla_sc".format(chan)])[0, special_idx, 1, 1, 0, 0, 0, 0] + contribs_from_minus_2U/2.0
/tmp/ipykernel_30316/1552136659.py:105: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_d{0}_sbe_from_d".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_nabla_d".format(chan)])[0, special_idx, 1, 1, 0, 0, 0, 0] + 0.5 * contribs_from_minus_2U/2.0
/tmp/ipykernel_30316/1552136659.py:106: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_d{0}_sbe_from_m".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_nabla_m".format(chan)])[0, special_idx, 1, 1, 0, 0, 0, 0] + 1.5 * contribs_from_minus_2U/2.0
/tmp/ipykernel_30316/1552136659.py:108: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_d{0}_sbe_from_Mm".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_M_m".format(chan)])[0, special_idx, 1, 1, 0, 0, 0, 0]
/tmp/ipykernel_30316/1552136659.py:109: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_d{0}_sbe_from_Md".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_M_d".format(chan)])[0, special_idx, 1, 1, 0, 0, 0, 0]
/tmp/ipykernel_30316/1552136659.py:110: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_d{0}_sbe_from_Msc".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_M_sc".format(chan)])[0, special_idx, 1, 1, 0, 0, 0, 0]
/media/aiman/data/omega_influence_finite_doping_withrest_final_small/final_beta20_withrest_omega0_influence_doped_Ueffgeq0_small/dat__g01_OMEGA010000_U2p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.3916776730053092 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/final_beta20_withrest_omega0_influence_doped_Ueffgeq0_small/dat__g01_OMEGA01_U2p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.3916853956883317 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/final_beta20_withrest_omega0_influence_doped_Ueffgeq0_small/dat__g01_OMEGA00p01_U2p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.39167883741726095 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/final_beta20_withrest_omega0_influence_doped_Ueffgeq0_small/dat__g01_OMEGA00p1_U2p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.39167766993054287 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/final_beta20_withrest_omega0_influence_doped_Ueffgeq0_small/dat__g01_OMEGA0100_U2p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.3916839986050895 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/final_beta20_withrest_omega0_influence_doped_Ueffgeq0_small/dat__g01_OMEGA010_U2p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.39167766347607463 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/final_beta20_withrest_omega0_influence_doped_Ueffseq0_small/dat__g02_OMEGA01_U1p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.39167989469095327 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/final_beta20_withrest_omega0_influence_doped_Ueffseq0_small/dat__g02_OMEGA00p1_U1p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.3916732567557158 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/final_beta20_withrest_omega0_influence_doped_Ueffseq0_small/dat__g02_OMEGA00p01_U1p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.3916765438913463 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/final_beta20_withrest_omega0_influence_doped_Ueffseq0_small/dat__g02_OMEGA010000_U1p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.3916776604574812 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/final_beta20_withrest_omega0_influence_doped_Ueffseq0_small/dat__g02_OMEGA01000_U1p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.3916776616463902 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/final_beta20_withrest_omega0_influence_doped_Ueffseq0_small/dat__g02_OMEGA010_U1p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.39167766108366614 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/final_beta20_withrest_omega0_influence_doped_Ueffseq0_small/dat__g02_OMEGA0100_U1p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.3916776631297781 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/no_se_final_beta20_withrest_omega0_influence_doped_Ueffgeq0_small/dat__g01_OMEGA00p1_U2p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM 0.39167766522557534 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/no_se_final_beta20_withrest_omega0_influence_doped_Ueffgeq0_small/dat__g01_OMEGA010_U2p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM 0.39167766522557534 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/no_se_final_beta20_withrest_omega0_influence_doped_Ueffgeq0_small/dat__g01_OMEGA01000_U2p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM 0.39167766522557534 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/no_se_final_beta20_withrest_omega0_influence_doped_Ueffgeq0_small/dat__g01_OMEGA00p01_U2p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM 0.39167766522557534 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/no_se_final_beta20_withrest_omega0_influence_doped_Ueffgeq0_small/dat__g01_OMEGA0100_U2p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM 0.39167766522557534 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/no_se_final_beta20_withrest_omega0_influence_doped_Ueffgeq0_small/dat__g01_OMEGA010000_U2p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM 0.39167766522557534 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/no_se_final_beta20_withrest_omega0_influence_doped_Ueffgeq0_small/dat__g01_OMEGA01_U2p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM 0.39167766522557534 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/no_se_final_beta20_withrest_omega0_influence_doped_Ueffseq0_small/dat__g02_OMEGA0100_U1p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM 0.39167766522557534 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/no_se_final_beta20_withrest_omega0_influence_doped_Ueffseq0_small/dat__g02_OMEGA010000_U1p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM 0.39167766522557534 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/no_se_final_beta20_withrest_omega0_influence_doped_Ueffseq0_small/dat__g02_OMEGA00p01_U1p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM 0.39167766522557534 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/no_se_final_beta20_withrest_omega0_influence_doped_Ueffseq0_small/dat__g02_OMEGA010_U1p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM 0.39167766522557534 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/no_se_final_beta20_withrest_omega0_influence_doped_Ueffseq0_small/dat__g02_OMEGA01_U1p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM 0.39167766522557534 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/no_se_final_beta20_withrest_omega0_influence_doped_Ueffseq0_small/dat__g02_OMEGA01000_U1p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM 0.39167766522557534 /media/aiman/data/omega_influence_finite_doping_withrest_final_small/no_se_final_beta20_withrest_omega0_influence_doped_Ueffseq0_small/dat__g02_OMEGA00p1_U1p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM 0.39167766522557534 /media/aiman/data/acoustic_beta20_withrest_omega0_influence_halffilling_Ueffleq0//dat__g031p622777_OMEGA01000_U1p5_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.5000000354920053
/tmp/ipykernel_30316/1552136659.py:80: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
contribs_from_minus_2U = -2.0*np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_bare_vertex".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0]
/media/aiman/data/acoustic_beta20_withrest_omega0_influence_halffilling_Ueffleq0//dat__g010_OMEGA0100_U1p5_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.5000024084314295 /media/aiman/data/acoustic_beta20_withrest_omega0_influence_halffilling_Ueffleq0//dat__g0100_OMEGA010000_U1p5_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.5000000412486796 /media/aiman/data/acoustic_beta20_withrest_omega0_influence_halffilling_Ueffleq0//dat__g01_OMEGA01_U1p5_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.49999992797357207 /media/aiman/data/acoustic_beta20_withrest_omega0_influence_halffilling_Ueffleq0//dat__g00p1_OMEGA00p01_U1p5_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.5000023343947849 /media/aiman/data/acoustic_beta20_withrest_omega0_influence_halffilling_Ueffleq0//dat__g010000000_OMEGA0100000000000000_U1p5_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.49999924114873007 /media/aiman/data/acoustic_beta20_withrest_omega0_influence_halffilling_Ueffleq0//dat__g00p316228_OMEGA00p1_U1p5_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.5000044117695774 /media/aiman/data/acoustic_beta20_withrest_omega0_influence_halffilling_Ueffleq0//dat__g03p162278_OMEGA010_U1p5_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.5000001736779712 /media/aiman/data/acoustic_beta20_withrest_omega0_influence_halffilling_Ueffgeq0//dat__g00p083666_OMEGA00p01_U2p2_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.49999999893276514 /media/aiman/data/acoustic_beta20_withrest_omega0_influence_halffilling_Ueffgeq0//dat__g083p666003_OMEGA010000_U2p2_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.5000000107910061 /media/aiman/data/acoustic_beta20_withrest_omega0_influence_halffilling_Ueffgeq0//dat__g08p3666_OMEGA0100_U2p2_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.5000000172361266 /media/aiman/data/acoustic_beta20_withrest_omega0_influence_halffilling_Ueffgeq0//dat__g02p645751_OMEGA010_U2p2_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.5000000684070388 /media/aiman/data/acoustic_beta20_withrest_omega0_influence_halffilling_Ueffgeq0//dat__g00p264575_OMEGA00p1_U2p2_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.5000095184076133 /media/aiman/data/acoustic_beta20_withrest_omega0_influence_halffilling_Ueffgeq0//dat__g00p83666_OMEGA01_U2p2_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.4999906233568561 /media/aiman/data/acoustic_beta20_withrest_omega0_influence_halffilling_Ueffgeq0//dat__g08366600p265341_OMEGA0100000000000000_U2p2_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.500000008133696 /media/aiman/data/acoustic_beta20_withrest_omega0_influence_halffilling_Ueffgeq0//dat__g026p457513_OMEGA01000_U2p2_V0_TP0_Mu0_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.5000000168963353 /media/aiman/data/bubble_fluct_diag/final_beta20_withrest_omega0_influence_doped_Ueffseq0_fine_for_bubble_fluctdiag_small//dat__g02_OMEGA00p6_U1p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.39166860068557485 /media/aiman/data/bubble_fluct_diag/final_beta20_withrest_omega0_influence_doped_Ueffseq0_fine_for_bubble_fluctdiag_small//dat__g02_OMEGA00p7_U1p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.39167763735098204 /media/aiman/data/bubble_fluct_diag/final_beta20_withrest_omega0_influence_doped_Ueffseq0_fine_for_bubble_fluctdiag_small//dat__g02_OMEGA00p3_U1p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.39167489577445747 /media/aiman/data/bubble_fluct_diag/final_beta20_withrest_omega0_influence_doped_Ueffseq0_fine_for_bubble_fluctdiag_small//dat__g02_OMEGA00p8_U1p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.3916776481875376 /media/aiman/data/bubble_fluct_diag/final_beta20_withrest_omega0_influence_doped_Ueffseq0_fine_for_bubble_fluctdiag_small//dat__g02_OMEGA00p2_U1p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.39167766254538616 /media/aiman/data/bubble_fluct_diag/final_beta20_withrest_omega0_influence_doped_Ueffseq0_fine_for_bubble_fluctdiag_small//dat__g02_OMEGA00p5_U1p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.391677649502873 /media/aiman/data/bubble_fluct_diag/final_beta20_withrest_omega0_influence_doped_Ueffseq0_fine_for_bubble_fluctdiag_small//dat__g02_OMEGA00p9_U1p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.39167765762743423 /media/aiman/data/bubble_fluct_diag/final_beta20_withrest_omega0_influence_doped_Ueffseq0_fine_for_bubble_fluctdiag_small//dat__g02_OMEGA00p4_U1p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.3916776536404267 /media/aiman/data/bubble_fluct_diag/final_beta20_withrest_omega0_influence_doped_Ueffgeq0_fine_for_bubble_fluctdiag_small//dat__g01_OMEGA00p9_U2p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.3916867928930937 /media/aiman/data/bubble_fluct_diag/final_beta20_withrest_omega0_influence_doped_Ueffgeq0_fine_for_bubble_fluctdiag_small//dat__g01_OMEGA00p3_U2p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.39167766621676836 /media/aiman/data/bubble_fluct_diag/final_beta20_withrest_omega0_influence_doped_Ueffgeq0_fine_for_bubble_fluctdiag_small//dat__g01_OMEGA00p5_U2p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.3916776658652777 /media/aiman/data/bubble_fluct_diag/final_beta20_withrest_omega0_influence_doped_Ueffgeq0_fine_for_bubble_fluctdiag_small//dat__g01_OMEGA00p8_U2p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.391677665383815 /media/aiman/data/bubble_fluct_diag/final_beta20_withrest_omega0_influence_doped_Ueffgeq0_fine_for_bubble_fluctdiag_small//dat__g01_OMEGA00p4_U2p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.3916778222229426 /media/aiman/data/bubble_fluct_diag/final_beta20_withrest_omega0_influence_doped_Ueffgeq0_fine_for_bubble_fluctdiag_small//dat__g01_OMEGA00p2_U2p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.3916776662371872 /media/aiman/data/bubble_fluct_diag/final_beta20_withrest_omega0_influence_doped_Ueffgeq0_fine_for_bubble_fluctdiag_small//dat__g01_OMEGA00p6_U2p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.39167766578630225 /media/aiman/data/bubble_fluct_diag/final_beta20_withrest_omega0_influence_doped_Ueffgeq0_fine_for_bubble_fluctdiag_small//dat__g01_OMEGA00p7_U2p5_V0_TP-0p25_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.39167791858134426
objs_doping_dependence = sorted(load(datnames_doping_dependence) , key=lambda o1: o1['filling'])
/media/aiman/data/chi_vs_doping//dat__g01p5_OMEGA01p5_U0_V0_TP0_Mu-2p8_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA5_C5_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.10626529599299556
/tmp/ipykernel_30316/1552136659.py:14: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
GammaXM_path = np.array(mf.params_file["Model/Special_paths/path_Gamma_X_M"])
/tmp/ipykernel_30316/1552136659.py:56: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
obj['lambda_sc'] = np.array(f["lambda_func/RE_SC"])[:, 0, :, 0]
/tmp/ipykernel_30316/1552136659.py:57: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
obj['lambda_d'] = np.array(f["lambda_func/RE_D"])[:, 0, :, 0]
/tmp/ipykernel_30316/1552136659.py:58: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
obj['lambda_m'] = np.array(f["lambda_func/RE_M"])[:, 136, :, 0]
/tmp/ipykernel_30316/1552136659.py:60: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
obj['w_d'] = np.array(f["w_func/RE_D"])[:, 136]
/tmp/ipykernel_30316/1552136659.py:61: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
obj['RE_Sigma'] = np.array(f["Sig/RE"])
/tmp/ipykernel_30316/1552136659.py:62: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
obj['IM_Sigma'] = np.array(f["Sig/IM"])
/tmp/ipykernel_30316/1552136659.py:63: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
obj["Sigma_momgrid"] = np.array(f["Sig/momgrid"])
/tmp/ipykernel_30316/1552136659.py:64: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
obj["Sigma_fgrid"] = np.array(f["Sig/fgrid"])
/tmp/ipykernel_30316/1552136659.py:78: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
contribs_from_minus_2U = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_bare_vertex".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0] + np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_sc_double_counting".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0] + np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_d_double_counting".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0] + np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_m_double_counting".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0]
/tmp/ipykernel_30316/1552136659.py:82: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_{0}_fl".format(chan))] = np.array(f["Flow_obs/S_Wave_Susc_info/RE_Susc_{0}".format(chan)])[0, special_idx]
/tmp/ipykernel_30316/1552136659.py:83: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_{0}_full".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0]
/tmp/ipykernel_30316/1552136659.py:84: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_{0}_bubble".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_bubble_contribution".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0]
/tmp/ipykernel_30316/1552136659.py:86: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_{0}_sbe_from_sc".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_nabla_sc".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0] + contribs_from_minus_2U/2.0
/tmp/ipykernel_30316/1552136659.py:87: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_{0}_sbe_from_d".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_nabla_d".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0] + 0.5 * contribs_from_minus_2U/2.0
/tmp/ipykernel_30316/1552136659.py:88: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_{0}_sbe_from_m".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_nabla_m".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0] + 1.5 * contribs_from_minus_2U/2.0
/tmp/ipykernel_30316/1552136659.py:91: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_{0}_sbe_from_Mm".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_M_m".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0]
/tmp/ipykernel_30316/1552136659.py:92: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_{0}_sbe_from_Md".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_M_d".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0]
/tmp/ipykernel_30316/1552136659.py:93: DeprecationWarning: `product` is deprecated as of NumPy 1.25.0, and will be removed in NumPy 2.0. Please use `prod` instead.
chi_split_objs[("chi_{0}_sbe_from_Msc".format(chan))] = np.array(f["Flow_obs/Postprocessing_Susc_info/RE_Susc_{0}_vertex_contribution_from_M_sc".format(chan)])[0, special_idx, 0, 0, 0, 0, 0, 0]
/media/aiman/data/chi_vs_doping//dat__g01p5_OMEGA01p5_U0_V0_TP0_Mu-1p4_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA5_C5_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.2580834888302045 /media/aiman/data/chi_vs_doping//dat__g01p5_OMEGA01p5_U0_V0_TP0_Mu-2p4_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA5_C5_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.14527574887849176 /media/aiman/data/chi_vs_doping//dat__g01p5_OMEGA01p5_U0_V0_TP0_Mu-1p6_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA5_C5_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.23330782140567985 /media/aiman/data/chi_vs_doping//dat__g01p5_OMEGA01p5_U0_V0_TP0_Mu-2p2_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA5_C5_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.16590484542205364 /media/aiman/data/chi_vs_doping//dat__g01p5_OMEGA01p5_U0_V0_TP0_Mu-2_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA5_C5_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.18737211980141355 /media/aiman/data/chi_vs_doping//dat__g01p5_OMEGA01p5_U0_V0_TP0_Mu-1p8_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA5_C5_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.20979488347814196 /media/aiman/data/chi_vs_doping//dat__g01p5_OMEGA01p5_U0_V0_TP0_Mu-1p2_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA5_C5_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.2843494239588918 /media/aiman/data/chi_vs_doping//dat__g01p5_OMEGA01p5_U0_V0_TP0_Mu-1_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA5_C5_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.3124434061987892 /media/aiman/data/chi_vs_doping//dat__g01p5_OMEGA01p5_U0_V0_TP0_Mu-2p6_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1_BETA5_C5_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_NOMIXEDBUBS_FIXFILLING_RESTFUNC_ALLSYMM_SELFEN_FLOW 0.1254144684305078
def plot_sucs_vs_filling(objs_, chan = "sc,d", with_legend = True, title= "", lims = None, ax = None, no_xticks = False, no_yticks =False, square = True, no_ylabel = False):
n_vals = [o['filling'] for o in objs_]
max_sc_vals = [1.0/o['max_sc'] for o in objs_]
max_d_vals = [1.0/o['max_d'] for o in objs_]
max_m_vals = [1.0/o['max_m'] for o in objs_]
dsc = 'max_dsc' in objs_[0].keys()
max_dsc_vals = []
if dsc:
max_dsc_vals = [o['max_dsc'] for o in objs_]
if ax == None:
ax = plt.gca()
if not no_xticks:
ax.set_xlabel(r"$n$")
else:
ax.set_xticks([])
if not no_yticks:
if not no_ylabel:
ax.set_ylabel(r"$\chi^{-1}/t$")
else:
ax.set_yticks([])
if lims != None:
ax.set_ylim(lims)
U = objs_[-1]['U']
Vh = objs_[-1]['Vh']
#print(U)
#print(Vh)
sc_marker = r"o-" if (U == 0) else ("o-" if U == 2 else "o-")
d_marker = r"s-" if (U == 0) else ("s-" if U == 2 else "s-")
m_marker = r"^-" if (U == 0) else ("^-" if U == 2 else "^-")
dsc_marker = r"H-"
if title != "":
ax.set_title(title)
if square:
ax.set_aspect('equal')
if "m" in chan:
ax.plot(n_vals, max_m_vals, m_marker, markersize=8, markeredgecolor='black', label=r"$\mathrm{M}$", color='b')
if "d" in chan:
line_obj, = ax.plot(n_vals, max_d_vals, d_marker, markersize=8, markeredgecolor='black', label=r"$\mathrm{D}$", color='g')
ax.plot([], [], sc_marker, markersize=8, markeredgecolor='black', label=r"$\mathrm{SC}$", color='r')
if "sc" in chan:
ax.plot(n_vals, max_sc_vals, sc_marker, markersize=8, markeredgecolor='black', label=r"$\mathrm{SC}$", color='r')
if "d" in chan:
line_obj.set_label(r"$\mathrm{D}$")
if dsc:
ax.plot(n_vals, max_dsc_vals, dsc_marker, markersize=8, markeredgecolor='black', label=r"$\mathrm{dSC}}$", color='purple')
if square:
ax.set_aspect('equal')
ax.set_aspect(1./ax.get_data_ratio())
if with_legend:
ax.legend()
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(4.0*2*0.9, 3.1*1*0.9)) # Adjust figsize as needed
plot_sucs_vs_filling(objs_doping_dependence, ax=axes[0], square=False, chan="d", no_xticks=False)
plot_sucs_vs_filling(objs_doping_dependence, ax=axes[1], square=False, chan="sc", with_legend=False, no_ylabel = True)
plt.subplots_adjust(wspace=0.18, hspace=0.00)
#axes[0].set_title(r"$U_{eff} > 0$", loc="center", y=0.8, fontsize=15)
#axes[1].set_title(r"$U_{eff} < 0$", loc="center", y=0.8, fontsize=15)
plt.savefig('horizontal_doping_influence_beta5_Ueff=m3_withrest.svg', dpi=300, bbox_inches='tight', pad_inches=0) # Save the figure with higher DPI for better resolution
/tmp/ipykernel_13027/82150483.py:1: UserWarning: cmr10 font should ideally be used with mathtext, set axes.formatter.use_mathtext to True fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(4.0*2*0.9, 3.1*1*0.9)) # Adjust figsize as needed
def plot_inv_sucs(objs_, with_legend = True, title= "", symlog= False, lims = None, ax = None, no_xticks = False, no_yticks =False, no_ylabel=False, square = True):
omega0_vals = [o['Omega0'] for o in objs_]
max_sc_vals = [1./o['max_sc'] for o in objs_]
max_d_vals = [1./o['max_d'] for o in objs_]
max_m_vals = [1./o['max_m'] for o in objs_]
dsc = 'max_dsc' in objs_[0].keys()
max_dsc_vals = []
if dsc:
max_dsc_vals = [1./o['max_dsc'] for o in objs_]
if ax == None:
ax = plt.gca()
if not no_xticks:
ax.set_xlabel(r"$\omega_0/t$")
else:
ax.set_xticks([])
if not no_yticks:
if not no_ylabel:
ax.set_ylabel(r"$\chi^{-1}/t$")
else:
ax.set_yticks([])
if symlog:
ax.set_yscale('symlog', linthresh=1)
#plt.yscale('log')
if lims != None:
ax.set_ylim(lims)
U = objs_[-1]['U']
Vh = objs_[-1]['Vh']
sc_marker = r"o-" if (U == 0) else ("o-" if U == 2 else "o-")
d_marker = r"s-" if (U == 0) else ("s-" if U == 2 else "s-")
m_marker = r"^-" if (U == 0) else ("^-" if U == 2 else "^-")
dsc_marker = r"H-"
if title != "":
ax.set_title(title)
if square:
ax.set_aspect('equal')
omega0_vals_strs = []
for omega in omega0_vals:
if omega >= 0.99999:
omega0_vals_strs.append(str(int(omega)))
else:
omega0_vals_strs.append(str(omega))
ax.plot(omega0_vals_strs, max_m_vals, m_marker, markersize=8, markeredgecolor='black', label=r"$\mathrm{M}$", color='b')
line_obj, = ax.plot(omega0_vals_strs, max_d_vals, d_marker, markersize=8, markeredgecolor='black', label=r"$\mathrm{D}$", color='g')
ax.plot(omega0_vals_strs, max_sc_vals, sc_marker, markersize=8, markeredgecolor='black', label=r"$\mathrm{SC}$", color='r')
line_obj.set_label(r"$\mathrm{D}$")
if dsc:
ax.plot(omega0_vals_strs, max_dsc_vals, dsc_marker, markersize=8, markeredgecolor='black', label=r"$\mathrm{dSC}$", color='purple')
if square:
ax.set_aspect('equal')
ax.set_aspect(1./ax.get_data_ratio())
if with_legend:
ax.legend()
def plot_inv_sucs_with_wo_se(objs_, objs_no_se_, ax = None, with_legend = True, title= "", symlog= False, square = True, lims=None, sig_nosig_legend = True):
omega0_vals = [o['Omega0'] for o in objs_]
max_sc_vals = [1./o['max_sc'] for o in objs_]
max_d_vals = [1./o['max_d'] for o in objs_]
max_m_vals = [1./o['max_m'] for o in objs_]
max_sc_vals_no_se = [1./o['max_sc'] for o in objs_no_se_]
max_d_vals_no_se = [1./o['max_d'] for o in objs_no_se_]
max_m_vals_no_se = [1./o['max_m'] for o in objs_no_se_]
dsc = 'max_dsc' in objs_[0].keys()
max_dsc_vals = []
max_dsc_vals_no_se = []
if ax == None:
ax = plt.gca()
if dsc:
max_dsc_vals = [1./o['max_dsc'] for o in objs_]
max_dsc_vals_no_se = [1./o['max_dsc'] for o in objs_no_se_]
if lims != None:
ax.set_ylim(lims)
ax.set_xlabel(r"$\omega_0/t$")
ax.set_ylabel(r"$\chi^{-1}/t$")
if symlog:
ax.set_yscale('symlog')
#plt.yscale('log')
U = objs_[-1]['U']
Vh = objs_[-1]['Vh']
sc_marker = r"o-" if (U == 0) else ("o-" if U == 2 else "o-")
d_marker = r"s-" if (U == 0) else ("s-" if U == 2 else "s-")
m_marker = r"^-" if (U == 0) else ("^-" if U == 2 else "^-")
dsc_marker = r"H-"
sc_marker_no_se = r"o--"
d_marker_no_se = r"s--"
m_marker_no_se = r"^--"
dsc_marker_no_se = r"H--"
if title != "":
ax.set_title(title)
if square:
ax.set_aspect('equal')
omega0_vals_strs = []
for omega in omega0_vals:
if omega >= 0.99999:
omega0_vals_strs.append(str(int(omega)))
else:
omega0_vals_strs.append(str(omega))
ax.plot(omega0_vals_strs, max_m_vals_no_se, m_marker_no_se, markersize=8, markeredgecolor='black', markerfacecolor=(1.0, 1.0, 1.0, 0.0), color='blue')
ax.plot(omega0_vals_strs, max_dsc_vals_no_se, dsc_marker_no_se, markersize=8, markeredgecolor='black', markerfacecolor=(1.0, 1.0, 1.0, 0.0), color='purple')
ax.plot(omega0_vals_strs, max_m_vals, m_marker, markersize=8, markeredgecolor='black', color='blue')
ax.plot(omega0_vals_strs, max_dsc_vals, dsc_marker, markersize=8, markeredgecolor='black', color='purple')
ax.plot([], "^", markeredgecolor='black', label=r"$\mathrm{M}$", color='blue', markersize=8)
ax.plot([],"H", markeredgecolor='black', label=r"$\mathrm{dSC}$", color='purple', markersize=8)
if sig_nosig_legend:
ax.plot([], "-", label=r"with $\dot{\Sigma}$", color='black')
ax.plot([],"--", label=r"$\dot{\Sigma} = 0$", color='black')
#line_obj, = plt.plot(omega0_vals_strs, max_d_vals, d_marker, markersize=8, markeredgecolor='black', label=r"$\chi_{\mathrm{D}}^{-1}$", color='g')
#plt.plot(omega0_vals_strs, max_sc_vals, sc_marker, markersize=8, markeredgecolor='black', label=r"$\chi_{\mathrm{SC}}^{-1}$", color='r')
#line_obj.set_label(r"$\chi_{\mathrm{D}}^{-1}$")
#if dsc:
if square:
ax.set_aspect('equal')
ax.set_aspect(1./ax.get_data_ratio())
if with_legend:
ax.legend(loc="lower right", ncol=2, fontsize=12, columnspacing=1.0)
def plot_inv_sucs_with_wo_se_sc_and_d(objs_, objs_no_se_, ax = None, with_legend = True, title= "", symlog= False, no_xticks = False, square = True, show_dsc_and_m_legend = False, lims=None, no_ylabel=False):
omega0_vals = [o['Omega0'] for o in objs_]
max_sc_vals = [1./o['max_sc'] for o in objs_]
max_d_vals = [1./o['max_d'] for o in objs_]
max_m_vals = [1./o['max_m'] for o in objs_]
max_sc_vals_no_se = [1./o['max_sc'] for o in objs_no_se_]
max_d_vals_no_se = [1./o['max_d'] for o in objs_no_se_]
max_m_vals_no_se = [1./o['max_m'] for o in objs_no_se_]
if ax == None:
ax = plt.gca()
if not no_xticks:
ax.set_xlabel(r"$\omega_0/t$")
else:
ax.set_xticks([])
dsc = 'max_dsc' in objs_[0].keys()
max_dsc_vals = []
max_dsc_vals_no_se = []
if dsc:
max_dsc_vals = [1./o['max_dsc'] for o in objs_]
max_dsc_vals_no_se = [1./o['max_dsc'] for o in objs_no_se_]
if lims != None:
ax.set_ylim(lims)
if not no_xticks:
ax.set_xlabel(r"$\omega_0/t$")
if not no_ylabel:
ax.set_ylabel(r"$\chi^{-1}/t$")
if symlog:
ax.set_yscale('symlog')
#plt.yscale('log')
U = objs_[-1]['U']
Vh = objs_[-1]['Vh']
sc_marker = r"o-" if (U == 0) else ("o-" if U == 2 else "o-")
d_marker = r"s-" if (U == 0) else ("s-" if U == 2 else "s-")
m_marker = r"^-" if (U == 0) else ("^-" if U == 2 else "^-")
dsc_marker = r"H-"
sc_marker_no_se = r"o--"
d_marker_no_se = r"s--"
m_marker_no_se = r"^--"
dsc_marker_no_se = r"H--"
if title != "":
ax.set_title(title)
omega0_vals_strs = []
for omega in omega0_vals:
if omega >= 0.99999:
omega0_vals_strs.append(str(int(omega)))
else:
omega0_vals_strs.append(str(omega))
if square:
ax.set_aspect('equal')
ax.plot(omega0_vals_strs, max_d_vals_no_se, d_marker_no_se, markersize=8, markeredgecolor='black', markerfacecolor=(1.0, 1.0, 1.0, 0.0), color='green')
ax.plot(omega0_vals_strs, max_sc_vals_no_se, sc_marker_no_se, markersize=8, markeredgecolor='black', markerfacecolor=(1.0, 1.0, 1.0, 0.0), color='red')
ax.plot(omega0_vals_strs, max_d_vals, d_marker, markersize=8, markeredgecolor='black', color='green')
ax.plot(omega0_vals_strs, max_sc_vals, sc_marker, markersize=8, markeredgecolor='black', color='red')
ax.plot([], " ", markeredgecolor='black', label=r" ", color='blue', markersize=8)
ax.plot([],"--", label=r"$\dot{\Sigma} = 0$", color='black')
ax.plot([], "-", label=r"with $\dot{\Sigma}$", color='black')
ax.plot([], " ", markeredgecolor='black', label=r" ", color='blue', markersize=8)
ax.plot([], "^", markeredgecolor='black', label=r"$\mathrm{M}$", color='blue', markersize=8)
ax.plot([], "s", markeredgecolor='black', label=r"$\mathrm{D}$", color='green', markersize=8)
ax.plot([],"o", markeredgecolor='black', label=r"$\mathrm{SC}$", color='red', markersize=8)
ax.plot([],"H", markeredgecolor='black', label=r"$\mathrm{dSC}$", color='purple', markersize=8)
if show_dsc_and_m_legend:
ax.plot([], "^", markeredgecolor='black', label=r"$\mathrm{M}$", color='blue', markersize=8)
ax.plot([],"H", markeredgecolor='black', label=r"$\mathrm{dSC}$", color='purple', markersize=8)
#line_obj, = plt.plot(omega0_vals_strs, max_d_vals, d_marker, markersize=8, markeredgecolor='black', label=r"$\chi_{\mathrm{D}}^{-1}$", color='g')
#plt.plot(omega0_vals_strs, max_sc_vals, sc_marker, markersize=8, markeredgecolor='black', label=r"$\chi_{\mathrm{SC}}^{-1}$", color='r')
#line_obj.set_label(r"$\chi_{\mathrm{D}}^{-1}$")
#if dsc:
if square:
ax.set_aspect('equal')
ax.set_aspect(1./ax.get_data_ratio())
if with_legend:
ax.legend(loc="upper right", ncol=2, fontsize=11, columnspacing=0.3, bbox_to_anchor=(1.02, 1))
from matplotlib.ticker import MaxNLocator # Correct import
from matplotlib.ticker import ScalarFormatter
def plot_fluct_diag_chi(channel, symlog = False, add_shade = False, geq = None, objs_ = objs_halffillingrightbottom, with_legend = False, dwave_sc = False, single_channel = None, title = "", with_M_ = False, with_symlog = False, ax_ = None, no_xticks=False):
if ax_ is None:
ax_ = plt.gca()
vals_sc_full = []
vals_sc_sc = []
vals_sc_d = []
vals_sc_m = []
vals_sc_ueff = []
vals_sc_bub = []
with_M = ('chi_'+channel+'_sbe_from_Mm' in objs_[0]['chi_split'].keys()) and with_M_
vals_sc_Msc = []
vals_sc_Md = []
vals_sc_Mm = []
for o in objs_:
vals_sc_full.append(o['chi_split']['chi_'+channel+'_full'])
vals_sc_sc.append(o['chi_split']['chi_'+channel+'_sbe_from_sc'] + o['chi_split']['chi_'+channel+'_sbe_from_Msc'])
vals_sc_d.append(o['chi_split']['chi_'+channel+'_sbe_from_d'] + o['chi_split']['chi_'+channel+'_sbe_from_Md'])
vals_sc_m.append(o['chi_split']['chi_'+channel+'_sbe_from_m'] + o['chi_split']['chi_'+channel+'_sbe_from_Mm'])
vals_sc_bub.append(o['chi_split']['chi_'+channel+'_bubble'])
vals_sc_ueff.append(o['chi_split']['chi_'+channel+'_mbe'])
#if with_M:
vals_sc_Msc.append(o['chi_split']['chi_'+channel+'_sbe_from_Msc'])
vals_sc_Md.append(o['chi_split']['chi_'+channel+'_sbe_from_Md'])
vals_sc_Mm.append(o['chi_split']['chi_'+channel+'_sbe_from_Mm'])
vals_sc_Msc = np.array(vals_sc_Msc)
vals_sc_Md = np.array(vals_sc_Md)
vals_sc_Mm = np.array(vals_sc_Mm)
U = objs_[-1]['U']
Vh = objs_[-1]['Vh']
omega0_vals = [o['Omega0'] for o in objs_]
sc_marker = r"o-" if (U == 0) else ("o-." if U == 2 else "o--")
d_marker = r"s-" if (U == 0) else ("s-." if U == 2 else "s--")
m_marker = r"^-" if (U == 0) else ("^-." if U == 2 else "^--")
U_marker = r"x-" if (U == 0) else ("x-." if U == 2 else "x--")
bubble_marker = r"*-" if (U == 0) else ("*-." if U == 2 else "*--")
print(U, Vh)
if title != "":
ax_.set_title(title)
ax_.set_xlabel(r"$\omega_0/t$")
if geq is None:
ax_.set_ylabel(r"$\chi^{"+(channel.upper() if channel != "dsc" else "dSC")+r"}t$")
ax_.set_ylabel("")
else:
ax_.set_ylabel(r"$\chi t$")# (U_{eff} "+ (r">" if geq else r"<") + r" 0)$")
if no_xticks:
ax_.set_xticks([])
ax_.set_xlabel("")
ax_.axhline(0, color='gray')
if with_symlog:
ax_.set_yscale('symlog', linthresh=1)
ax_.set_aspect('equal')
omega0_vals_strs = []
for omega in omega0_vals:
if omega >= 0.99999:
omega0_vals_strs.append(str(int(omega)))
else:
omega0_vals_strs.append(str(omega))
the_color = None
if channel == "sc":
the_color = 'r'
if channel == "m":
the_color = "b"
if channel == "d":
the_color = "g"
if channel == "dsc":
the_color = "purple"
line_obj = None
if single_channel == 'd' or single_channel is None:
line_obj, _, _ = ax_.errorbar(omega0_vals_strs, vals_sc_d, elinewidth=7, yerr=[vals_sc_Md, np.zeros(len(vals_sc_Md))], ecolor=(0.0, 1.0, 0.0, 0.35), fmt=d_marker, markersize=8, markeredgecolor='black', markerfacecolor='g',label=r"$\chi^{"+channel.upper()+r"}_{\overline{\nabla}^D}$", color=the_color)
if single_channel == 'm' or single_channel is None:
ax_.errorbar(omega0_vals_strs, vals_sc_m, elinewidth=4.5, yerr=[vals_sc_Mm, np.zeros(len(vals_sc_Mm))], fmt = m_marker, ecolor=(0.0, 0.0, 1.0, 0.35), markersize=8, markeredgecolor='black', markerfacecolor='b', label=r"$\chi^{"+channel.upper()+r"}_{\overline{\nabla}^M}$", color=the_color)
if (single_channel == 'sc' or single_channel is None):
ax_.errorbar(omega0_vals_strs, vals_sc_sc, elinewidth=2.0, yerr = [vals_sc_Msc, np.zeros(len(vals_sc_Msc))], ecolor=(1.0, 0.0, 0.0, 0.35), fmt = sc_marker, markersize=8, markeredgecolor='black', markerfacecolor='r', label=r"$\chi^{"+channel.upper()+r"}_{\overline{\nabla}^{SC}}$", color=the_color)
line_obj.set_label(r"$\chi^{"+channel.upper()+r"}_{\overline{\nabla}^D}$")
if (single_channel == 'u' or single_channel is None) and not dwave_sc:
ax_.plot(omega0_vals_strs, vals_sc_ueff, U_marker, markersize=10, markeredgecolor='black', markerfacecolor='grey', label=r"$\chi^{"+channel.upper()+r"}_{U_{eff}}$", color=the_color)
if single_channel == 'bubble' or single_channel is None:
ax_.plot(omega0_vals_strs, vals_sc_bub, bubble_marker, markersize=12, markeredgecolor='black', markerfacecolor='white', label=r"$\chi^{"+channel.upper()+r"}_{bubble}$", color=the_color)
if with_M:
if single_channel == 'Msc' or single_channel is None:
ax_.plot(omega0_vals_strs, vals_sc_Msc, sc_marker[0], label=r"$\chi^{"+channel.upper()+r"}_{M^{SC}}$", color=the_color)
if single_channel == 'Md' or single_channel is None:
ax_.plot(omega0_vals_strs, vals_sc_Md, d_marker[0], label=r"$\chi^{"+channel.upper()+r"}_{M^D}$", color=the_color)
if single_channel == 'Mm' or single_channel is None:
ax_.plot(omega0_vals_strs, vals_sc_Mm, m_marker[0], label=r"$\chi^{"+channel.upper()+r"}_{M^M}$", color=the_color)
ax_.set_aspect('equal')
ax_.set_aspect(1./ax_.get_data_ratio())
if add_shade:
ax_.axvspan(0, 0.9, color='gray', alpha=0.3) # alpha controls transparency
#plt.gca().yaxis.set_major_locator(MaxNLocator(nbins=6)) # 8 ticks on y-axis
#plt.gca().yaxis.set_major_formatter(ScalarFormatter())
#plt.gca().ticklabel_format(style='plain', axis='y') # Ensure plain formatting
#plt.gca().set_aspect('equal')
if with_legend:
ax_.legend()
# Half filling $U = 2.5t, V_h = 1.0t, U_{eff} = 1.5t$
#plt.rcParams["figure.figsize"] = (8,6)
objs_halffilling_upperhalf = sorted(objs_halffillinglefttop , key=lambda o1: o1['Omega0'])
objs_halffilling_lowerhalf = sorted(objs_halffillingrightbottom , key=lambda o1: o1['Omega0'])
objs_halffilling_upperhalf_acoustic = sorted(objs_halffillinglefttop_acoustic , key=lambda o1: o1['Omega0'])
objs_halffilling_lowerhalf_acoustic = sorted(objs_halffillingrightbottom_acoustic , key=lambda o1: o1['Omega0'])
#plot_fluct_diag_chi('sc', objs_ = objs_halffilling_upperhalf[2:-1])#, title ="$U = 2t, V_h = 1.7t$")
plot_inv_sucs(objs_halffilling_lowerhalf[1:-1], title ="$U_{eff} < 0$", lims=[-0.2, 7.5])
plt.savefig('halfleq.png', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
#objs_halffilling_upperhalf[0]
/tmp/ipykernel_30316/1876461287.py:13: UserWarning: cmr10 font should ideally be used with mathtext, set axes.formatter.use_mathtext to True ax = plt.gca()
plot_inv_sucs(objs_halffilling_upperhalf[1:-1], title ="$U_{eff} > 0$", lims=[-0.2, 7.5])
plt.savefig('halfgeq.png', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
/tmp/ipykernel_13027/1876461287.py:13: UserWarning: cmr10 font should ideally be used with mathtext, set axes.formatter.use_mathtext to True ax = plt.gca()
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(3.7*2*0.9, 3.3*1*0.9))
plot_inv_sucs(objs_halffilling_upperhalf[1:-1], ax = axes[0], no_xticks = False, square=True)
plot_inv_sucs(objs_halffilling_lowerhalf[1:-1], ax = axes[1], square=True, with_legend = False, no_ylabel=True)
plt.subplots_adjust(wspace=0.0, hspace=0.00)
axes[0].set_title(r"$U_{\mathrm{eff}} > 0$", loc="center", y=1., fontsize=15)
axes[1].set_title(r"$U_{\mathrm{eff}} < 0$", loc="center", y=1., fontsize=15)
plt.savefig('horizontal_omega_influence_beta20_halffilling_withrest.svg', dpi=300, bbox_inches='tight', pad_inches=0) # Save the figure with higher DPI for better resolution
/tmp/ipykernel_53564/3001197494.py:1: UserWarning: cmr10 font should ideally be used with mathtext, set axes.formatter.use_mathtext to True fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(3.7*2*0.9, 3.3*1*0.9))
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(3.7*2*0.9, 3.3*1*0.9))
plot_inv_sucs(objs_doped_lefttop[1:-1], ax = axes[0], no_xticks = False, square=True, lims=[-0.2, 9.0])
plot_inv_sucs(objs_doped_rightbottom[1:-1], ax = axes[1], square=True, no_ylabel=True, with_legend = False, lims=[-0.2, 4.6])
plt.subplots_adjust(wspace=0.0, hspace=0.00)
font_settings = {'family': 'serif', 'size': 14, 'weight': 'bold'}
axes[0].set_title(r"$U_\mathrm{eff} > 0$", loc="center", y=1., fontsize=15, fontdict=font_settings)
axes[1].set_title(r"$U_\mathrm{eff} < 0$", loc="center", y=1., fontsize=15, fontdict=font_settings)
plt.savefig('horizontal_omega_influence_beta20_doped_withrest.svg', dpi=300, bbox_inches='tight', pad_inches=0) # Save the figure with higher DPI for better resolution
/tmp/ipykernel_53564/3360883990.py:1: UserWarning: cmr10 font should ideally be used with mathtext, set axes.formatter.use_mathtext to True fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(3.7*2*0.9, 3.3*1*0.9))
plot_inv_sucs(objs_halffilling_lowerhalf_acoustic[1:-2], title ="$U_{eff} < 0$")
plt.savefig('halfleq_acoustic.png', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
#objs_halffilling_upperhalf[0]
plot_inv_sucs(objs_halffilling_upperhalf_acoustic[1:-2], title ="$U_{eff} > 0$")
plt.savefig('halfgeq_acoustic.png', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(3.7*2*0.9, 3.3*1*0.9))
plot_inv_sucs(objs_halffilling_upperhalf_acoustic[1:-2], ax = axes[0], no_xticks = False, square=True)
plot_inv_sucs(objs_halffilling_lowerhalf_acoustic[1:-2], ax = axes[1], square=True, with_legend = False, no_ylabel=True)
plt.subplots_adjust(wspace=0.0, hspace=0.00)
axes[0].set_title(r"$U_{\mathrm{eff}} > 0$", loc="center", y=1., fontsize=15)
axes[1].set_title(r"$U_{\mathrm{eff}} < 0$", loc="center", y=1., fontsize=15)
plt.savefig('horizontal_omega_influence_beta20_halffilling_withrest_acoustic.svg', dpi=300, bbox_inches='tight', pad_inches=0) # Save the figure with higher DPI for better resolution
/tmp/ipykernel_53564/3094668279.py:1: UserWarning: cmr10 font should ideally be used with mathtext, set axes.formatter.use_mathtext to True fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(3.7*2*0.9, 3.3*1*0.9))
from matplotlib.lines import Line2D
legend_elements_g1 = [
Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], color='black', linestyle='None', label=r' '), # Dotted green line
Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], markerfacecolor='blue', marker='^', markeredgecolor='black', markersize=8, linestyle='None', label=r'$\chi^{*}_{\overline{\nabla}^\mathrm{M}} + \chi^{*}_{M^\mathrm{M}}$'), # Green marker
Line2D([0], [0], markerfacecolor='green', marker='s', markeredgecolor='black', markersize=8, linestyle='None', label=r'$\chi^{*}_{\overline{\nabla}^\mathrm{D}} + \chi^{*}_{M^\mathrm{D}}$'), # Red marker
Line2D([0], [0], markerfacecolor='red', marker='o', markeredgecolor='black', markersize=8, linestyle='None', label=r'$\chi^{*}_{\overline{\nabla}^\mathrm{SC}} + \chi^{*}_{M^\mathrm{SC}}$'), # Blue marker
Line2D([0], [0], markerfacecolor='grey', marker='x', markeredgecolor='black', markersize=10, linestyle='None', label=r'$\chi^{*}_{U_{eff}}$'), # Blue marker
Line2D([0], [0], markerfacecolor='white', marker='*', markeredgecolor='black', markersize=12, linestyle='None', label=r'$\chi^{*}_0$'), # Blue marker
#Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
#Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
]
legend_elements_g2 = [
# Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], color='blue', linestyle='--', label=r'$\chi^{\mathrm{M}}_{*}$'), # Dotted red line
Line2D([0], [0], color='green', linestyle='--', label=r'$\chi^{\mathrm{D}}_{*}$'), # Dotted blue line
Line2D([0], [0], color='red', linestyle='--', label=r'$\chi^{\mathrm{SC}}_{*}$'), # Dotted green line
]
fig, axes = plt.subplots(nrows=2, ncols=3, figsize=(4.8*3, 4.8*2)) # Adjust figsize as needed
plot_fluct_diag_chi('m', objs_ = objs_halffilling_upperhalf[1:-1], ax_ = axes[0][0], geq = True, add_shade=True, with_symlog = True, title ="")
plot_fluct_diag_chi('d', objs_ = objs_halffilling_upperhalf[1:-1], ax_ = axes[0][1], add_shade=True)#, title ="upper half")
plot_fluct_diag_chi('sc', objs_ = objs_halffilling_upperhalf[1:-1], ax_ = axes[0][2], add_shade=True)#, title ="upper half")
plot_fluct_diag_chi('m', objs_ = objs_halffilling_lowerhalf[1:-1], ax_ = axes[1][0], geq = False, add_shade=True)#, title ="upper half")
plot_fluct_diag_chi('d', objs_ = objs_halffilling_lowerhalf[1:-1], ax_ = axes[1][1], add_shade=True, with_symlog = True)#, title ="upper half")
plot_fluct_diag_chi('sc', objs_ = objs_halffilling_lowerhalf[1:-1], ax_ = axes[1][2], add_shade=True)#, title ="upper half")
l1 = axes[0][0].legend(handles=legend_elements_g1, loc='upper right', title='', ncol=2,
handlelength=1.1, # Shorter handles
handletextpad=0.2, # Less space between handles and text
labelspacing=0.3, # Less vertical space between labels
borderpad=0.1, # Smaller padding around the legend box
columnspacing=0.4, frameon = True, fancybox=True # Less space between columns
)
axes[0][0].add_artist(l1)
l2 = axes[0][0].legend(handles=legend_elements_g2, loc='upper center', title='', ncol=1, bbox_to_anchor=(0.5, 0.9), frameon = False)
axes[0][0].add_artist(l2)
#plt.legend(ncol=2)
plt.subplots_adjust(wspace=0.18, hspace=-0.01)
plt.savefig('fluctuation_diagnostics_optical_halffilling_beta20_withrest.png', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
#plt.subplots_adjust(wspace=0.1, hspace=-0.1)
#plt.savefig('phase_diag_halffilling_beta20.png', dpi=300) # Save the figure with higher DPI for better resolution
2.2 0.00392 2.2 0.00392 2.2 0.00392 1.5 0.008 1.5 0.008 1.5 0.008
from matplotlib.lines import Line2D
legend_elements_g1 = [
Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], color='black', linestyle='None', label=r' '), # Dotted green line
Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], markerfacecolor='blue', marker='^', markeredgecolor='black', markersize=8, linestyle='None', label=r'$\chi_{\overline{\nabla}^\mathrm{M}} + \chi_{M^\mathrm{M}}$'), # Green marker
Line2D([0], [0], markerfacecolor='green', marker='s', markeredgecolor='black', markersize=8, linestyle='None', label=r'$\chi_{\overline{\nabla}^\mathrm{D}} + \chi_{M^\mathrm{D}}$'), # Red marker
Line2D([0], [0], markerfacecolor='red', marker='o', markeredgecolor='black', markersize=8, linestyle='None', label=r'$\chi_{\overline{\nabla}^\mathrm{SC}} + \chi_{M^\mathrm{SC}}$'), # Blue marker
Line2D([0], [0], markerfacecolor='grey', marker='x', markeredgecolor='black', markersize=10, linestyle='None', label=r'$\chi_{U_{\mathrm{eff}}}$'), # Blue marker
Line2D([0], [0], markerfacecolor='white', marker='*', markeredgecolor='black', markersize=12, linestyle='None', label=r'$\chi_{\mathrm{bubble}}$'), # Blue marker
#Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
#Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
]
legend_elements_g2 = [
# Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], color='blue', linestyle='--', label=r'$\chi^{\mathrm{M}}_{}$'), # Dotted red line
Line2D([0], [0], color='green', linestyle='--', label=r'$\chi^{\mathrm{D}}_{}$'), # Dotted blue line
Line2D([0], [0], color='red', linestyle='--', label=r'$\chi^{\mathrm{SC}}_{}$'), # Dotted green line
]
fig, axes = plt.subplots(nrows=2, ncols=3, figsize=(4.1*3, 4.1*2)) # Adjust figsize as needed
plot_fluct_diag_chi('m', objs_ = objs_halffilling_upperhalf[1:-1], ax_ = axes[0][0], no_xticks=True, geq = True, add_shade=False, with_symlog = True, title ="")
plot_fluct_diag_chi('d', objs_ = objs_halffilling_upperhalf[1:-1], ax_ = axes[0][1], no_xticks=True, add_shade=False)#, title ="upper half")
plot_fluct_diag_chi('sc', objs_ = objs_halffilling_upperhalf[1:-1], ax_ = axes[0][2], no_xticks=True, add_shade=False)#, title ="upper half")
plot_fluct_diag_chi('m', objs_ = objs_halffilling_lowerhalf[1:-1], ax_ = axes[1][0], geq = False, add_shade=False)#, title ="upper half")
plot_fluct_diag_chi('d', objs_ = objs_halffilling_lowerhalf[1:-1], ax_ = axes[1][1], add_shade=False, with_symlog = True)#, title ="upper half")
plot_fluct_diag_chi('sc', objs_ = objs_halffilling_lowerhalf[1:-1], ax_ = axes[1][2], add_shade=False)#, title ="upper half")
l1 = axes[0][0].legend(handles=legend_elements_g1, loc='upper right', title='', ncol=2,
handlelength=1.1, # Shorter handles
handletextpad=0.2, # Less space between handles and text
labelspacing=0.3, # Less vertical space between labels
borderpad=0.1, # Smaller padding around the legend box
columnspacing=0.1, frameon = True, fancybox=True # Less space between columns
)
axes[0][0].add_artist(l1)
#l2 = axes[0][0].legend(handles=legend_elements_g2, handlelength=1.3,handletextpad=0.2, loc='upper center', title='', ncol=1, bbox_to_anchor=(0.44, 0.95), frameon = False)
#axes[0][0].add_artist(l2)
#ax_right = axes[0][2].twinx()
#ax_right.tick_params(right=False, labelright=False)
#ax_right.spines['right'].set_visible(False)
#ax_right.set_ylabel(r'$U_{\mathrm{eff}} > 0$', fontsize=15)
#ax_right2 = axes[1][2].twinx()
#ax_right2.tick_params(right=False, labelright=False)
#ax_right2.spines['right'].set_visible(False)
#ax_right2.set_ylabel(r'$U_{\mathrm{eff}} < 0$', fontsize=15)
#plt.legend(ncol=2)
plt.subplots_adjust(wspace=0.18, hspace=-0.01)
fig.text(0.23, 0.88, r'$\chi^{\mathrm{M}}$', fontsize=16)
fig.text(0.24+0.27, 0.88, r'$\chi^{\mathrm{D}}$', fontsize=16)
fig.text(0.24+0.27+0.27, 0.88, r'$\chi^{\mathrm{SC}}$', fontsize=16)
fig.text(0.24+0.27+0.405, 0.68, r'$U_{\mathrm{eff}}> 0$', fontsize=16, rotation=90, ha='center', va='center')
fig.text(0.24+0.27+0.405, 0.32, r'$U_{\mathrm{eff}}< 0$', fontsize=16, rotation=90, ha='center', va='center')
plt.savefig('fluctuation_diagnostics_halffilling_beta20_withrest_optical.svg', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
#plt.subplots_adjust(wspace=0.1, hspace=-0.1)
#plt.savefig('phase_diag_halffilling_beta20.png', dpi=300) # Save the figure with higher DPI for better resolution
/tmp/ipykernel_13027/791364148.py:41: UserWarning: cmr10 font should ideally be used with mathtext, set axes.formatter.use_mathtext to True fig, axes = plt.subplots(nrows=2, ncols=3, figsize=(4.1*3, 4.1*2)) # Adjust figsize as needed
2.2 0.00392 2.2 0.00392 2.2 0.00392 1.5 0.008 1.5 0.008 1.5 0.008
from matplotlib.lines import Line2D
legend_elements_g1 = [
Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], color='black', linestyle='None', label=r' '), # Dotted green line
Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], markerfacecolor='blue', marker='^', markeredgecolor='black', markersize=8, linestyle='None', label=r'$\chi^{*}_{\overline{\nabla}^\mathrm{M}} + \chi^{*}_{M^\mathrm{M}}$'), # Green marker
Line2D([0], [0], markerfacecolor='green', marker='s', markeredgecolor='black', markersize=8, linestyle='None', label=r'$\chi^{*}_{\overline{\nabla}^\mathrm{D}} + \chi^{*}_{M^\mathrm{D}}$'), # Red marker
Line2D([0], [0], markerfacecolor='red', marker='o', markeredgecolor='black', markersize=8, linestyle='None', label=r'$\chi^{*}_{\overline{\nabla}^\mathrm{SC}} + \chi^{*}_{M^\mathrm{SC}}$'), # Blue marker
Line2D([0], [0], markerfacecolor='grey', marker='x', markeredgecolor='black', markersize=10, linestyle='None', label=r'$\chi^{*}_{U_{eff}}$'), # Blue marker
Line2D([0], [0], markerfacecolor='yellow', marker='*', markeredgecolor='black', markersize=12, linestyle='None', label=r'$\chi^{*}_0$'), # Blue marker
#Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
#Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
]
legend_elements_g2 = [
# Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], color='blue', linestyle='--', label=r'$\chi^{\mathrm{M}}_{*}$'), # Dotted red line
Line2D([0], [0], color='green', linestyle='--', label=r'$\chi^{\mathrm{D}}_{*}$'), # Dotted blue line
Line2D([0], [0], color='red', linestyle='--', label=r'$\chi^{\mathrm{SC}}_{*}$'), # Dotted green line
]
fig, axes = plt.subplots(nrows=2, ncols=3, figsize=(4.8*3, 4.8*2)) # Adjust figsize as needed
plot_fluct_diag_chi('m', objs_ = objs_doped_lefttop[1:-1], ax_ = axes[0][0], geq = True, add_shade=False, title ="")
plot_fluct_diag_chi('d', objs_ = objs_doped_lefttop[1:-1], ax_ = axes[0][1], add_shade=False)#, title ="upper half")
plot_fluct_diag_chi('sc', objs_ = objs_doped_lefttop[1:-1], ax_ = axes[0][2], add_shade=False)#, title ="upper half")
plot_fluct_diag_chi('m', objs_ = objs_doped_rightbottom[1:-1], ax_ = axes[1][0], geq = False, add_shade=False)#, title ="upper half")
plot_fluct_diag_chi('d', objs_ = objs_doped_rightbottom[1:-1], ax_ = axes[1][1], add_shade=False)#, title ="upper half")
plot_fluct_diag_chi('sc', objs_ = objs_doped_rightbottom[1:-1], ax_ = axes[1][2], add_shade=False)#, title ="upper half")
l1 = axes[1][0].legend(handles=legend_elements_g1, loc='center right', bbox_to_anchor=(1.0, 0.62), title='', ncol=2,
handlelength=1.1, # Shorter handles
handletextpad=0.2, # Less space between handles and text
labelspacing=0.3, # Less vertical space between labels
borderpad=0.1, # Smaller padding around the legend box
columnspacing=0.4, frameon = True, fancybox=True # Less space between columns
)
axes[1][0].add_artist(l1)
l2 = axes[1][0].legend(handles=legend_elements_g2, loc='center right', title='', ncol=1, bbox_to_anchor=(0.66, 0.62), frameon = False)
axes[1][0].add_artist(l2)
#plt.legend(ncol=2)
plt.subplots_adjust(wspace=0.19, hspace=-0.01)
plt.savefig('fluctuation_diagnostics_optical_doped_beta20_withrest.png', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
#plt.subplots_adjust(wspace=0.1, hspace=-0.1)
#plt.savefig('phase_diag_halffilling_beta20.png', dpi=300) # Save the figure with higher DPI for better resolution
2.5 0.002 2.5 0.002 2.5 0.002 1.5 0.008 1.5 0.008 1.5 0.008
from matplotlib.lines import Line2D
legend_elements_g1 = [
Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], color='black', linestyle='None', label=r' '), # Dotted green line
Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], markerfacecolor='blue', marker='^', markeredgecolor='black', markersize=8, linestyle='None', label=r'$\chi_{\overline{\nabla}^\mathrm{M}} + \chi_{M^\mathrm{M}}$'), # Green marker
Line2D([0], [0], markerfacecolor='green', marker='s', markeredgecolor='black', markersize=8, linestyle='None', label=r'$\chi_{\overline{\nabla}^\mathrm{D}} + \chi_{M^\mathrm{D}}$'), # Red marker
Line2D([0], [0], markerfacecolor='red', marker='o', markeredgecolor='black', markersize=8, linestyle='None', label=r'$\chi_{\overline{\nabla}^\mathrm{SC}} + \chi_{M^\mathrm{SC}}$'), # Blue marker
Line2D([0], [0], markerfacecolor='grey', marker='x', markeredgecolor='black', markersize=10, linestyle='None', label=r'$\chi_{U_{\mathrm{eff}}}$'), # Blue marker
Line2D([0], [0], markerfacecolor='white', marker='*', markeredgecolor='black', markersize=12, linestyle='None', label=r'$\chi_{\mathrm{bubble}}$'), # Blue marker
#Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
#Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
]
legend_elements_g2 = [
# Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], color='blue', linestyle='--', label=r'$\chi^{\mathrm{M}}_{}$'), # Dotted red line
Line2D([0], [0], color='green', linestyle='--', label=r'$\chi^{\mathrm{D}}_{}$'), # Dotted blue line
Line2D([0], [0], color='red', linestyle='--', label=r'$\chi^{\mathrm{SC}}_{}$'), # Dotted green line
]
fig, axes = plt.subplots(nrows=2, ncols=3, figsize=(4.1*3, 4.1*2)) # Adjust figsize as needed
plot_fluct_diag_chi('m', objs_ = objs_doped_lefttop[1:-1], ax_ = axes[0][0], geq = True, add_shade=False, title ="", no_xticks=True)
plot_fluct_diag_chi('d', objs_ = objs_doped_lefttop[1:-1], ax_ = axes[0][1], add_shade=False, no_xticks=True)#, title ="upper half")
plot_fluct_diag_chi('sc', objs_ = objs_doped_lefttop[1:-1], ax_ = axes[0][2], add_shade=False, no_xticks=True)#, title ="upper half")
plot_fluct_diag_chi('m', objs_ = objs_doped_rightbottom[1:-1], ax_ = axes[1][0], geq = False, add_shade=False)#, title ="upper half")
plot_fluct_diag_chi('d', objs_ = objs_doped_rightbottom[1:-1], ax_ = axes[1][1], add_shade=False)#, title ="upper half")
plot_fluct_diag_chi('sc', objs_ = objs_doped_rightbottom[1:-1], ax_ = axes[1][2], add_shade=False)#, title ="upper half")
l1 = axes[1][0].legend(handles=legend_elements_g1, loc='center right', title='', ncol=2,bbox_to_anchor=(1.0, 0.63),
handlelength=1.1, # Shorter handles
handletextpad=0.2, # Less space between handles and text
labelspacing=0.3, # Less vertical space between labels
borderpad=0.1, # Smaller padding around the legend box
columnspacing=0.1, frameon = True, fancybox=True # Less space between columns
)
#axes[1][0].legend(handles=legend_elements_g2, loc='center right', title='', ncol=1, bbox_to_anchor=(0.66, 0.62), frameon = False)
axes[1][0].add_artist(l1)
#l2 = axes[0][0].legend(handles=legend_elements_g2, handlelength=1.3,handletextpad=0.2, loc='upper center', title='', ncol=1, bbox_to_anchor=(0.44, 0.95), frameon = False)
#axes[0][0].add_artist(l2)
#ax_right = axes[0][2].twinx()
#ax_right.tick_params(right=False, labelright=False)
#ax_right.spines['right'].set_visible(False)
#ax_right.set_ylabel(r'$U_{\mathrm{eff}} > 0$', fontsize=15)
#ax_right2 = axes[1][2].twinx()
#ax_right2.tick_params(right=False, labelright=False)
#ax_right2.spines['right'].set_visible(False)
#ax_right2.set_ylabel(r'$U_{\mathrm{eff}} < 0$', fontsize=15)
#plt.legend(ncol=2)
plt.subplots_adjust(wspace=0.18, hspace=-0.01)
fig.text(0.23, 0.88, r'$\chi^{\mathrm{M}}$', fontsize=16)
fig.text(0.24+0.27, 0.88, r'$\chi^{\mathrm{D}}$', fontsize=16)
fig.text(0.24+0.27+0.27, 0.88, r'$\chi^{\mathrm{SC}}$', fontsize=16)
fig.text(0.24+0.27+0.405, 0.68, r'$U_{\mathrm{eff}}> 0$', fontsize=16, rotation=90, ha='center', va='center')
fig.text(0.24+0.27+0.405, 0.32, r'$U_{\mathrm{eff}}< 0$', fontsize=16, rotation=90, ha='center', va='center')
#plt.savefig('fluctuation_diagnostics_halffilling_beta20_withrest_acoustic.svg', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
plt.savefig('fluctuation_diagnostics_doped_beta20_withrest_optical.svg', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
#plt.subplots_adjust(wspace=0.1, hspace=-0.1)
#plt.savefig('phase_diag_halffilling_beta20.png', dpi=300) # Save the figure with higher DPI for better resolution
/tmp/ipykernel_13027/3804780793.py:41: UserWarning: cmr10 font should ideally be used with mathtext, set axes.formatter.use_mathtext to True fig, axes = plt.subplots(nrows=2, ncols=3, figsize=(4.1*3, 4.1*2)) # Adjust figsize as needed
2.5 0.002 2.5 0.002 2.5 0.002 1.5 0.008 1.5 0.008 1.5 0.008
from matplotlib.lines import Line2D
legend_elements_g1 = [
Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], color='black', linestyle='None', label=r' '), # Dotted green line
Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], markerfacecolor='blue', marker='^', markeredgecolor='black', markersize=8, linestyle='None', label=r'$\chi_{\overline{\nabla}^\mathrm{M}} + \chi_{M^\mathrm{M}}$'), # Green marker
Line2D([0], [0], markerfacecolor='green', marker='s', markeredgecolor='black', markersize=8, linestyle='None', label=r'$\chi_{\overline{\nabla}^\mathrm{D}} + \chi_{M^\mathrm{D}}$'), # Red marker
Line2D([0], [0], markerfacecolor='red', marker='o', markeredgecolor='black', markersize=8, linestyle='None', label=r'$\chi_{\overline{\nabla}^\mathrm{SC}} + \chi_{M^\mathrm{SC}}$'), # Blue marker
Line2D([0], [0], markerfacecolor='white', marker='*', markeredgecolor='black', markersize=12, linestyle='None', label=r'$\chi_{\mathrm{bubble}}$'), # Blue marker
#Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
#Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
]
legend_elements_g2 = [
# Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], color='blue', linestyle='--', label=r'$\chi^{\mathrm{M}}_{}$'), # Dotted red line
Line2D([0], [0], color='green', linestyle='--', label=r'$\chi^{\mathrm{D}}_{}$'), # Dotted blue line
Line2D([0], [0], color='red', linestyle='--', label=r'$\chi^{\mathrm{SC}}_{}$'), # Dotted green line
]
#l2 = axes[0][0].legend(handles=legend_elements_g2, handlelength=1.3,handletextpad=0.2, loc='upper center', title='', ncol=1, bbox_to_anchor=(0.44, 0.95), frameon = False)
#axes[0][0].add_artist(l2)
#ax_right = axes[0][2].twinx()
#ax_right.tick_params(right=False, labelright=False)
#ax_right.spines['right'].set_visible(False)
#ax_right.set_ylabel(r'$U_{\mathrm{eff}} > 0$', fontsize=15)
#ax_right2 = axes[1][2].twinx()
#ax_right2.tick_params(right=False, labelright=False)
#ax_right2.spines['right'].set_visible(False)
#ax_right2.set_ylabel(r'$U_{\mathrm{eff}} < 0$', fontsize=15)
#plt.legend(ncol=2)
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(3.4*2*0.9, 3.3*1*0.9)) # Adjust figsize as needed
axes[1].set_yticks([])
plot_fluct_diag_chi('dsc', objs_ = objs_doped_rightbottom[1:-1], ax_ = axes[1], dwave_sc=True)#, title ="upper half")
ylims =axes[1].get_ylim()
axes[0].set_ylim(ylims)
plot_fluct_diag_chi('dsc', objs_ = objs_doped_lefttop[1:-1], ax_ = axes[0], dwave_sc=True)#, title ="upper half")
l1 = axes[0].legend(handles=legend_elements_g1, loc='center right', title='', ncol=2,bbox_to_anchor=(1.0, 0.46),
handlelength=1.1, # Shorter handles
handletextpad=0.2, # Less space between handles and text
labelspacing=0.3, # Less vertical space between labels
borderpad=0.1, # Smaller padding around the legend box
columnspacing=0.1, frameon = True, fancybox=True # Less space between columns
)
#axes[1][0].legend(handles=legend_elements_g2, loc='center right', title='', ncol=1, bbox_to_anchor=(0.66, 0.62), frameon = False)
axes[0].add_artist(l1)
plt.subplots_adjust(wspace=0.00, hspace=-0.01)
axes[0].set_title(r"$U_{\mathrm{eff}}> 0$")
axes[1].set_title(r"$U_{\mathrm{eff}} < 0$")
axes[0].set_ylabel(r"$\chi^{\mathrm{dSC}}t$")
#fig.text(0.23, 0.88, r'$\chi^{\mathrm{M}}$', fontsize=16)
#fig.text(0.24+0.27, 0.88, r'$\chi^{\mathrm{D}}$', fontsize=16)
#fig.text(0.24+0.27+0.27, 0.88, r'$\chi^{\mathrm{SC}}$', fontsize=16)
#fig.text(0.24+0.27+0.405, 0.68, r'$U_{\mathrm{eff}}> 0$', fontsize=16, rotation=0, ha='center', va='center')
#fig.text(0.24+0.27+0.405, 0.32, r'$U_{\mathrm{eff}}< 0$', fontsize=16, rotation=0, ha='center', va='center')
#plt.savefig('fluctuation_diagnostics_halffilling_beta20_withrest_acoustic.svg', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
plt.savefig('fluctuation_diagnostics_dwave_doped_beta20_withrest_optical.svg', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
/tmp/ipykernel_13027/1614580872.py:55: UserWarning: cmr10 font should ideally be used with mathtext, set axes.formatter.use_mathtext to True fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(3.4*2*0.9, 3.3*1*0.9)) # Adjust figsize as needed
1.5 0.008 2.5 0.002
from matplotlib.lines import Line2D
legend_elements_g1 = [
Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], color='black', linestyle='None', label=r' '), # Dotted green line
Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], markerfacecolor='blue', marker='^', markeredgecolor='black', markersize=8, linestyle='None', label=r'$\chi_{\overline{\nabla}^\mathrm{M}} + \chi_{M^\mathrm{M}}$'), # Green marker
Line2D([0], [0], markerfacecolor='green', marker='s', markeredgecolor='black', markersize=8, linestyle='None', label=r'$\chi_{\overline{\nabla}^\mathrm{D}} + \chi_{M^\mathrm{D}}$'), # Red marker
Line2D([0], [0], markerfacecolor='red', marker='o', markeredgecolor='black', markersize=8, linestyle='None', label=r'$\chi_{\overline{\nabla}^\mathrm{SC}} + \chi_{M^\mathrm{SC}}$'), # Blue marker
Line2D([0], [0], markerfacecolor='grey', marker='x', markeredgecolor='black', markersize=10, linestyle='None', label=r'$\chi_{U_{eff}}$'), # Blue marker
Line2D([0], [0], markerfacecolor='white', marker='*', markeredgecolor='black', markersize=12, linestyle='None', label=r'$\chi_{\mathrm{bubble}}$'), # Blue marker
#Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
#Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
]
legend_elements_g2 = [
# Line2D([0], [0], color='black', linestyle='None', label=r''), # Dotted green line
Line2D([0], [0], color='blue', linestyle='--', label=r'$\chi^{\mathrm{M}}_{}$'), # Dotted red line
Line2D([0], [0], color='green', linestyle='--', label=r'$\chi^{\mathrm{D}}_{}$'), # Dotted blue line
Line2D([0], [0], color='red', linestyle='--', label=r'$\chi^{\mathrm{SC}}_{}$'), # Dotted green line
]
fig, axes = plt.subplots(nrows=2, ncols=3, figsize=(4.1*3, 4.1*2)) # Adjust figsize as needed
plot_fluct_diag_chi('m', objs_ = objs_halffilling_upperhalf_acoustic[1:-2], ax_ = axes[0][0], geq = True, add_shade=False, no_xticks=True, with_symlog = True, title ="")
plot_fluct_diag_chi('d', objs_ = objs_halffilling_upperhalf_acoustic[1:-2], ax_ = axes[0][1], no_xticks=True, add_shade=False)#, title ="upper half")
plot_fluct_diag_chi('sc', objs_ = objs_halffilling_upperhalf_acoustic[1:-2], ax_ = axes[0][2], no_xticks=True, add_shade=False)#, title ="upper half")
plot_fluct_diag_chi('m', objs_ = objs_halffilling_lowerhalf_acoustic[1:-2], ax_ = axes[1][0], geq = False, add_shade=False)#, title ="upper half")
plot_fluct_diag_chi('d', objs_ = objs_halffilling_lowerhalf_acoustic[1:-2], ax_ = axes[1][1], add_shade=False, with_symlog = True)#, title ="upper half")
plot_fluct_diag_chi('sc', objs_ = objs_halffilling_lowerhalf_acoustic[1:-2], ax_ = axes[1][2], add_shade=False)#, title ="upper half")
l1 = axes[0][0].legend(handles=legend_elements_g1, loc='upper right', title='', ncol=2,
handlelength=1.1, # Shorter handles
handletextpad=0.2, # Less space between handles and text
labelspacing=0.3, # Less vertical space between labels
borderpad=0.1, # Smaller padding around the legend box
columnspacing=0.1, frameon = True, fancybox=True # Less space between columns
)
axes[0][0].add_artist(l1)
#l2 = axes[0][0].legend(handles=legend_elements_g2, handlelength=1.3,handletextpad=0.2, loc='upper center', title='', ncol=1, bbox_to_anchor=(0.44, 0.95), frameon = False)
#axes[0][0].add_artist(l2)
#ax_right = axes[0][2].twinx()
#ax_right.tick_params(right=False, labelright=False)
#ax_right.spines['right'].set_visible(False)
#ax_right.set_ylabel(r'$U_{\mathrm{eff}} > 0$', fontsize=15)
#ax_right2 = axes[1][2].twinx()
#ax_right2.tick_params(right=False, labelright=False)
#ax_right2.spines['right'].set_visible(False)
#ax_right2.set_ylabel(r'$U_{\mathrm{eff}} < 0$', fontsize=15)
#plt.legend(ncol=2)
plt.subplots_adjust(wspace=0.18, hspace=-0.01)
fig.text(0.23, 0.88, r'$\chi^{\mathrm{M}}$', fontsize=16)
fig.text(0.24+0.27, 0.88, r'$\chi^{\mathrm{D}}$', fontsize=16)
fig.text(0.24+0.27+0.27, 0.88, r'$\chi^{\mathrm{SC}}$', fontsize=16)
fig.text(0.24+0.27+0.405, 0.68, r'$U_{\mathrm{eff}}> 0$', fontsize=16, rotation=90, ha='center', va='center')
fig.text(0.24+0.27+0.405, 0.32, r'$U_{\mathrm{eff}}< 0$', fontsize=16, rotation=90, ha='center', va='center')
plt.savefig('fluctuation_diagnostics_halffilling_beta20_withrest_acoustic.svg', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
#plt.subplots_adjust(wspace=0.1, hspace=-0.1)
#plt.savefig('phase_diag_halffilling_beta20.png', dpi=300) # Save the figure with higher DPI for better resolution
/tmp/ipykernel_13027/1039410162.py:41: UserWarning: cmr10 font should ideally be used with mathtext, set axes.formatter.use_mathtext to True fig, axes = plt.subplots(nrows=2, ncols=3, figsize=(4.1*3, 4.1*2)) # Adjust figsize as needed
2.2 1.4 2.2 1.4 2.2 1.4 1.5 2.0 1.5 2.0 1.5 2.0
#plot_inv_sucs(objs_doped_lefttop[1:], title ="$U_{eff} > 0$")#title ="$U = 2.5t, V_H = 1.0t$")
#plt.savefig('dopedgeq.png', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
plot_inv_sucs(objs_doped_lefttop[1:-1], title ="$U_{eff} > 0$")#, symlog=True)#title ="$U = 2.5t, V_H = 1.0t$")
plt.savefig('doped_with_rest_geq.png', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
plot_inv_sucs(objs_doped_lefttop_no_se[1:-1], title ="$U_{eff} > 0, \dot{\Sigma} = 0$", symlog=True)#title ="$U = 2.5t, V_H = 1.0t$")
plt.savefig('no_se_doped_with_rest_geq.png', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
plt.figure(figsize=(4.8, 4.0))
plot_inv_sucs_with_wo_se(objs_doped_lefttop[1:-1], objs_doped_lefttop_no_se[1:-1], title ="", symlog=False, square=False)#title ="$U = 2.5t, V_H = 1.0t$")
plt.savefig('se_effect_doped_with_rest_geq_zoom.svg', dpi=300, bbox_inches='tight', pad_inches=0) # Save the figure with higher DPI for better resolution
/tmp/ipykernel_18817/4145096624.py:55: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.
ax.plot([], "^", markeredgecolor='black', label=r"$(\chi^{\mathrm{M}})^{-1}$", color='blue', markersize=8)
/tmp/ipykernel_18817/4145096624.py:56: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.
ax.plot([],"H", markeredgecolor='black', label=r"$(\chi^{\mathrm{dSC}})^{-1}$", color='purple', markersize=8)
/tmp/ipykernel_18817/4145096624.py:58: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.
ax.plot([], "-", label=r"with $\dot{\Sigma}$", color='black')
/tmp/ipykernel_18817/4145096624.py:59: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.
ax.plot([],"--", label=r"$\dot{\Sigma} = 0$", color='black')
plt.figure(figsize=(4.8, 4.0))
plot_inv_sucs_with_wo_se_sc_and_d(objs_doped_rightbottom[1:-1], objs_doped_rightbottom_no_se[1:-1], title ="", symlog=False, square=False)#title ="$U = 2.5t, V_H = 1.0t$")
plt.savefig('se_effect_doped_with_rest_leq_zoom.svg', dpi=300, bbox_inches='tight', pad_inches=0) # Save the figure with higher DPI for better resolution
/tmp/ipykernel_18817/3042629883.py:52: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.
ax.plot([], "s", markeredgecolor='black', label=r"$(\chi^{\mathrm{D}})^{-1}$", color='green', markersize=8)
/tmp/ipykernel_18817/3042629883.py:53: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.
ax.plot([],"o", markeredgecolor='black', label=r"$(\chi^{\mathrm{SC}})^{-1}$", color='red', markersize=8)
/tmp/ipykernel_18817/3042629883.py:55: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.
ax.plot([], "-", label=r"with $\dot{\Sigma}$", color='black')
/tmp/ipykernel_18817/3042629883.py:56: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.
ax.plot([],"--", label=r"$\dot{\Sigma} = 0$", color='black')
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(3.7*2*0.9, 3.3*1*0.9))
plot_inv_sucs_with_wo_se_sc_and_d(objs_doped_rightbottom[1:-1], objs_doped_rightbottom_no_se[1:-1], with_legend=True, ax = axes[1], no_ylabel=True, title ="", symlog=False, square=True, no_xticks=False, show_dsc_and_m_legend= False)#title ="$U = 2.5t, V_H = 1.0t$")
plot_inv_sucs_with_wo_se(objs_doped_lefttop[1:-1], objs_doped_lefttop_no_se[1:-1], ax = axes[0], with_legend=False,sig_nosig_legend = False, title ="", symlog=False, square=True)#title ="$U = 2.5t, V_H = 1.0t$")
plt.subplots_adjust(wspace=0.0, hspace=0.00)
axes[1].set_title(r"$U_{\mathrm{eff}} < 0$", loc="center", y=1.0, x=0.5, fontsize=15)
axes[0].set_title(r"$U_{\mathrm{eff}} > 0$", loc="center", y=1.0, x=0.5, fontsize=15)
plt.savefig('horizontal_se_effect_doped_with_rest_zoom.svg', dpi=300, bbox_inches='tight', pad_inches=0) # Save the figure with higher DPI for better resolution
/tmp/ipykernel_53564/770704513.py:1: UserWarning: cmr10 font should ideally be used with mathtext, set axes.formatter.use_mathtext to True
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(3.7*2*0.9, 3.3*1*0.9))
/tmp/ipykernel_53564/2638232444.py:66: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.
ax.plot([], " ", markeredgecolor='black', label=r" ", color='blue', markersize=8)
/tmp/ipykernel_53564/2638232444.py:67: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.
ax.plot([],"--", label=r"$\dot{\Sigma} = 0$", color='black')
/tmp/ipykernel_53564/2638232444.py:68: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.
ax.plot([], "-", label=r"with $\dot{\Sigma}$", color='black')
/tmp/ipykernel_53564/2638232444.py:69: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.
ax.plot([], " ", markeredgecolor='black', label=r" ", color='blue', markersize=8)
/tmp/ipykernel_53564/2638232444.py:72: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.
ax.plot([], "^", markeredgecolor='black', label=r"$\mathrm{M}$", color='blue', markersize=8)
/tmp/ipykernel_53564/2638232444.py:73: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.
ax.plot([], "s", markeredgecolor='black', label=r"$\mathrm{D}$", color='green', markersize=8)
/tmp/ipykernel_53564/2638232444.py:74: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.
ax.plot([],"o", markeredgecolor='black', label=r"$\mathrm{SC}$", color='red', markersize=8)
/tmp/ipykernel_53564/2638232444.py:75: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.
ax.plot([],"H", markeredgecolor='black', label=r"$\mathrm{dSC}$", color='purple', markersize=8)
/tmp/ipykernel_53564/101069314.py:63: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.
ax.plot([], "^", markeredgecolor='black', label=r"$\mathrm{M}$", color='blue', markersize=8)
/tmp/ipykernel_53564/101069314.py:64: MatplotlibDeprecationWarning: Support for passing numbers through unit converters is deprecated since 3.5 and support will be removed two minor releases later; use Axis.convert_units instead.
ax.plot([],"H", markeredgecolor='black', label=r"$\mathrm{dSC}$", color='purple', markersize=8)
#(small magnetic fluctuations -> garbage)
plot_inv_sucs_with_wo_se(objs_doped_lefttop[2:-1], objs_doped_rightbottom_no_se[2:-1], title ="$U_{eff} > 0$", symlog=False)#title ="$U = 2.5t, V_H = 1.0t$")
plt.savefig('se_effect_doped_with_rest_geq.png', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
plot_fluct_diag_chi('sc', objs_ = objs_doped_lefttop[1:])#, title ="upper half")
plt.savefig('doped_sc_Ugeq.png', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
2.5 0.0002
plot_fluct_diag_chi('d', objs_ = objs_doped_lefttop[1:])#, title ="upper half")
plt.savefig('doped_d_Ugeq.png', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
2.5 0.0002
plot_fluct_diag_chi('m', objs_ = objs_doped_lefttop[1:])#, title ="upper half")
plt.savefig('doped_m_Ugeq.png', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
2.5 0.0002
plot_fluct_diag_chi('dsc', objs_ = objs_doped_lefttop[1:])#, title ="upper half")
plt.savefig('doped_dsc_Ugeq.png', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
2.5 0.0002
plot_inv_sucs(objs_doped_rightbottom[1:], title ="$U_{eff} < 0$")
plt.savefig('dopedleq.png', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
plot_inv_sucs(objs_doped_rightbottom[1:-1], title ="$U_{eff} < 0$")
plt.savefig('with_rest_dopedleq.png', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
plot_inv_sucs(objs_doped_rightbottom_no_se[1:], title ="$U_{eff} < 0$")
plt.savefig('with_rest_dopedleq_no_se.png', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
--------------------------------------------------------------------------- NameError Traceback (most recent call last) /tmp/ipykernel_1174708/2912924763.py in <module> ----> 1 plot_inv_sucs(objs_doped_rightbottom_no_se[1:], title ="$U_{eff} < 0$") 2 plt.savefig('with_rest_dopedleq_no_se.png', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution NameError: name 'objs_doped_rightbottom_no_se' is not defined
plot_fluct_diag_chi('sc', objs_ = objs_doped_rightbottom[1:])#, title ="upper half")
plt.savefig('doped_sc_Uleq.png', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
plot_fluct_diag_chi('d', objs_ = objs_doped_rightbottom[1:])#, title ="upper half")
plt.savefig('doped_d_Uleq.png', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
plot_fluct_diag_chi('m', objs_ = objs_doped_rightbottom[1:])#, title ="upper half")
plt.savefig('doped_m_Uleq.png', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
plot_fluct_diag_chi('dsc', objs_ = objs_doped_rightbottom[1:])#, title ="upper half")
plt.savefig('doped_dsc_Uleq.png', dpi=300, bbox_inches="tight") # Save the figure with higher DPI for better resolution
def get_bubble_integrand(G1, G2, q_mom_idx, ):
return G
def compute_bare_green(freq, k, t, tp, mu):
"""
Compute the bare Green's function G0 for a given momentum coordinate and frequency.
Parameters:
freq : complex or float
Frequency at which to evaluate the Green's function. For Matsubara frequencies,
use freq = 1j*omega.
k : array-like of length 2
Momentum coordinate [kx, ky] in the Brillouin zone.
t : float
Nearest-neighbor hopping amplitude.
tp : float
Next-nearest-neighbor hopping amplitude.
mu : float
Chemical potential.
Returns:
G0 : complex
The bare Green's function evaluated at (freq, k).
"""
kx, ky = k
# Calculate the non-interacting dispersion epsilon(k)
epsilon = -2 * t * (np.cos(kx) + np.cos(ky)) - 4 * tp * np.cos(kx) * np.cos(ky)
# Compute the shifted dispersion: xi(k) = epsilon(k) - mu
xi = epsilon - mu
# Compute the bare Green's function: G0(iω,k)=1/(iω - xi(k))
G0 = 1.0 / (freq - xi)
return G0
def compute_dressed_green(RE_Sigma, IM_Sigma, fgrid, momgrid, t, tp, mu):
"""
Compute the dressed Green's function G using the Dyson equation:
G(iω,k) = 1 / ( G0(iω,k)^{-1} - Σ(iω,k) )
but now the self-energy is provided via its real and imaginary parts.
Parameters:
RE_Sigma: numpy array of shape (n_freq, n_mom) with the real part of the self-energy.
IM_Sigma: numpy array of shape (n_freq, n_mom) with the imaginary part of the self-energy.
fgrid : numpy array of Matsubara frequencies (real numbers; use 1j*f for the frequency).
momgrid : numpy array of shape (n_mom, 2) with momentum coordinates (kx, ky) in the Brillouin zone.
t : float, nearest-neighbor hopping amplitude.
tp : float, next-nearest-neighbor hopping amplitude.
mu : float, chemical potential.
Returns:
G : numpy array of shape (n_freq, n_mom)
The dressed Green's function.
"""
# Combine the real and imaginary parts into a complex self-energy:
Sigma = RE_Sigma + 1j * IM_Sigma
n_freq = len(fgrid)
n_mom = len(momgrid)
# Preallocate an array for the bare Green's function.
G0 = np.empty((n_freq, n_mom), dtype=complex)
# Loop over momentum and frequency to compute G0 for each combination.
for m, k in enumerate(momgrid):
for i, freq in enumerate(fgrid):
# Here we assume fgrid contains the Matsubara frequencies as real numbers.
# Multiply by 1j to obtain the complex frequency.
G0[i, m] = compute_bare_green(1j * freq, k, t, tp, mu)
# Compute the dressed Green's function using the Dyson equation:
G = 1.0 / (1.0 / G0 - Sigma)
return G
def compute_quasiparticle_properties(RE_Sigma, IM_Sigma, fgrid, no_interpolate=False):
"""
Compute the quasiparticle residue Z and the interpolated self-energy at zero frequency, Sigma0,
for each momentum point by performing a cubic interpolation of the self-energy on the Matsubara frequency grid.
Parameters:
RE_Sigma : numpy array of shape (n_freq, n_mom)
Real part of the Matsubara self-energy.
IM_Sigma : numpy array of shape (n_freq, n_mom)
Imaginary part of the Matsubara self-energy.
fgrid : numpy array of Matsubara frequencies (real numbers).
These frequencies will be used in the interpolation.
Returns:
Z : numpy array of shape (n_mom,)
Quasiparticle residue computed as
Z(k) = 1 / (1 - [dSigma/df|_{f=0}]/i)
Sigma0 : numpy array of shape (n_mom,)
The extrapolated self-energy at zero frequency, Sigma(0), obtained from the cubic fit.
"""
# Combine real and imaginary parts into a complex self-energy
Sigma = RE_Sigma + 1j * IM_Sigma
n_freq, n_mom = Sigma.shape
# Choose the "first" Matsubara frequency at index n_freq//2 and the two following points.
idx0 = n_freq // 2
indices = [idx0, idx0+1, idx0+2]
# Preallocate arrays for Sigma(0) and its derivative dSigma/df at f=0.
Sigma0 = np.zeros(n_mom, dtype=complex)
dSigma0 = np.zeros(n_mom, dtype=complex)
# For each momentum point, perform a cubic polynomial fit: P(f)=a f^3 + b f^2 + c f + d.
# Then, P(0)=d (Sigma0) and P'(0)=c (the derivative).
for m in range(n_mom):
freqs = fgrid[indices]
sigma_vals = Sigma[indices, m]
if no_interpolate:
Sigma0[m] = sigma_vals[0]
dSigma0[m] = (sigma_vals[1] - sigma_vals[0])/freqs[0]
else:
coeffs = np.polyfit(freqs, sigma_vals, 3)
Sigma0[m] = np.polyval(coeffs, 0)
dSigma0[m] = coeffs[-2] # The coefficient of f is the derivative at 0.
# Identify the quasiparticle residue from the low-frequency expansion:
# Sigma(i f) ≈ Sigma(0) + (1 - 1/Z) i f => 1 - 1/Z = dSigma0 / i.
Z = 1.0 / (1 - dSigma0 / 1j)
# For a Fermi liquid, Z should be real.
Z = Z
Gamma = np.imag(Sigma0)
return Z, Gamma, Sigma0
def compute_coherent_green(RE_Sigma, IM_Sigma, fgrid, momgrid, t, tp, mu, no_interpolate=False):
"""
Compute the coherent part of the Green's function G_coh for a square lattice Hubbard model.
The coherent Green's function is given by:
G_coh(iω,k) = Z(k) / [ iω - ξ_coh(k) ],
where the renormalized dispersion is:
ξ_coh(k) = Z(k) [ ξ(k) + Re Σ(0,k) ],
with ξ(k)= ε(k)-μ and the bare dispersion on the square lattice:
ε(k) = -2t (cos kx + cos ky) - 4tp cos kx cos ky.
This function first computes the quasiparticle properties (Z and Sigma0) using
`compute_quasiparticle_properties`, then calculates ξ_coh, and finally constructs G_coh.
Parameters:
RE_Sigma : numpy array of shape (n_freq, n_mom)
Real part of the Matsubara self-energy.
IM_Sigma : numpy array of shape (n_freq, n_mom)
Imaginary part of the Matsubara self-energy.
fgrid : numpy array of Matsubara frequencies (real numbers).
momgrid : numpy array of shape (n_mom, 2)
Momentum coordinates [kx, ky] in the Brillouin zone.
t : float
Nearest-neighbor hopping amplitude.
tp : float
Next-nearest-neighbor hopping amplitude.
mu : float
Chemical potential.
Returns:
G_coh : numpy array of shape (n_freq, n_mom)
Coherent Green's function.
Z : numpy array of shape (n_mom,)
Quasiparticle residue.
xi_coh : numpy array of shape (n_mom,)
Renormalized dispersion for the coherent quasiparticles.
"""
# First, compute the quasiparticle residue Z and the extrapolated self-energy Sigma0.
Z, Gamma, Sigma0 = compute_quasiparticle_properties(RE_Sigma, IM_Sigma, fgrid, no_interpolate)
# Compute the bare dispersion for each momentum point.
kx = momgrid[:, 0]
ky = momgrid[:, 1]
epsilon = -2 * t * (np.cos(kx) + np.cos(ky)) - 4 * tp * np.cos(kx) * np.cos(ky)
xi = epsilon - mu # ξ(k) = ε(k) - μ
# Renormalized (coherent) dispersion:
xi_coh = Z * (xi + np.real(Sigma0))
# Construct the complex Matsubara frequencies.
iw = 1j * fgrid # shape: (n_freq,)
# Build the coherent Green's function:
# G_coh(iω,k) = Z(k) / (iω - ξ_coh(k))
G_coh = Z[None, :] / (iw[:, None] - xi_coh[None, :] + 1j*Z[None, :]*Gamma[None, :])
return G_coh, Z, Gamma, xi_coh
P_IN_K = 5
K_DIM = 16
K_DIM_refined = K_DIM * P_IN_K
n_refined = K_DIM_refined * K_DIM_refined
refined_momgrid = np.zeros((n_refined, 2))
d_refined = 2 * np.pi / K_DIM_refined
for i in range(n_refined):
refined_momgrid[i, 0] = (i // K_DIM_refined) * d_refined
refined_momgrid[i, 1] = (i % K_DIM_refined) * d_refined
import warnings
warnings.filterwarnings('ignore')
ReZs = []
ImZs = []
omegas = []
G_cohs = []
G_incohs = []
Gs = []
xi_cohs = [] # renormalised dispersion
Gammas = []
BETA = 20.0
for obj in objs_doped_lefttop:# + objs_bubdiagnostics_doped_lefttop:
omega0 = obj["Omega0"]
print(omega0)
#if omega0 < 1.0:
# continue
omegas.append(omega0)
#objs_doped_rightbottom
Sig_RE = obj["RE_Sigma"][:, :, 0, 0]
Sig_IM = obj["IM_Sigma"][:, :, 0, 0]
momgrid = obj["Sigma_momgrid"]
fgrid = obj["Sigma_fgrid"]
plt.plot(fgrid, Sig_IM[:, 0], "*", label=obj["Omega0"])
delta_mu = obj["delta_mu"]
#Z, Sig_cont = compute_quasiparticle_properties(Sig_RE, Sig_IM, fgrid)
print(delta_mu)
mu = -1.0 + delta_mu
tp = -0.25
G_coh, Z, Gamma, xi_coh = compute_coherent_green(Sig_RE, Sig_IM, fgrid, momgrid, 1.0, tp, mu, no_interpolate= True)
G = compute_dressed_green(Sig_RE, Sig_IM, fgrid, momgrid, 1.0, tp, mu)
G_incoh = G - G_coh
G_cohs.append(G_coh)
Gs.append(G)
G_incohs.append(G_incoh)
xi_cohs.append(xi_coh)
print(Sig_IM[80, :])
ReZs.append(np.min(np.real(Z)))#[128+8])
ImZs.append(np.max(np.imag(Z)))#[128+8])
Gammas.append(np.min(Gamma))
print(np.min(Gamma), np.max(Gamma), np.min(Sig_IM[80, :]))
plt.legend()
0.01 -0.04491963286221856 [-0.05036069 -0.05073875 -0.05160089 -0.05341533 -0.05636831 -0.06114103 -0.06629531 -0.07013141 -0.07114637 -0.07013141 -0.06629531 -0.06114103 -0.05636831 -0.05341533 -0.05160089 -0.05073875 -0.05073875 -0.05097254 -0.05200069 -0.05382011 -0.05703162 -0.06141806 -0.06606085 -0.06873581 -0.0696147 -0.06873581 -0.06606085 -0.06141806 -0.05703162 -0.05382011 -0.05200069 -0.05097254 -0.05160089 -0.05200069 -0.05310981 -0.05532251 -0.05860081 -0.06198809 -0.06396518 -0.06576273 -0.06647224 -0.06576273 -0.06396518 -0.06198809 -0.05860081 -0.05532251 -0.05310981 -0.05200069 -0.05341533 -0.05382011 -0.05532251 -0.05781792 -0.06022288 -0.06082875 -0.061375 -0.06239378 -0.0631734 -0.06239378 -0.061375 -0.06082875 -0.06022288 -0.05781792 -0.05532251 -0.05382011 -0.05636831 -0.05703162 -0.05860081 -0.06022288 -0.05996745 -0.0594462 -0.05922777 -0.05937615 -0.059248 -0.05937615 -0.05922777 -0.0594462 -0.05996745 -0.06022288 -0.05860081 -0.05703162 -0.06114103 -0.06141806 -0.06198809 -0.06082875 -0.0594462 -0.05836008 -0.05767362 -0.05640741 -0.05577426 -0.05640741 -0.05767362 -0.05836008 -0.0594462 -0.06082875 -0.06198809 -0.06141806 -0.06629531 -0.06606085 -0.06396518 -0.061375 -0.05922777 -0.05767362 -0.05567375 -0.05415295 -0.05353808 -0.05415295 -0.05567375 -0.05767362 -0.05922777 -0.061375 -0.06396518 -0.06606085 -0.07013141 -0.06873581 -0.06576273 -0.06239378 -0.05937615 -0.05640741 -0.05415295 -0.05280159 -0.05252102 -0.05280159 -0.05415295 -0.05640741 -0.05937615 -0.06239378 -0.06576273 -0.06873581 -0.07114637 -0.0696147 -0.06647224 -0.0631734 -0.059248 -0.05577426 -0.05353808 -0.05252102 -0.05206621 -0.05252102 -0.05353808 -0.05577426 -0.059248 -0.0631734 -0.06647224 -0.0696147 -0.07013141 -0.06873581 -0.06576273 -0.06239378 -0.05937615 -0.05640741 -0.05415295 -0.05280159 -0.05252102 -0.05280159 -0.05415295 -0.05640741 -0.05937615 -0.06239378 -0.06576273 -0.06873581 -0.06629531 -0.06606085 -0.06396518 -0.061375 -0.05922777 -0.05767362 -0.05567375 -0.05415295 -0.05353808 -0.05415295 -0.05567375 -0.05767362 -0.05922777 -0.061375 -0.06396518 -0.06606085 -0.06114103 -0.06141806 -0.06198809 -0.06082875 -0.0594462 -0.05836008 -0.05767362 -0.05640741 -0.05577426 -0.05640741 -0.05767362 -0.05836008 -0.0594462 -0.06082875 -0.06198809 -0.06141806 -0.05636831 -0.05703162 -0.05860081 -0.06022288 -0.05996745 -0.0594462 -0.05922777 -0.05937615 -0.059248 -0.05937615 -0.05922777 -0.0594462 -0.05996745 -0.06022288 -0.05860081 -0.05703162 -0.05341533 -0.05382011 -0.05532251 -0.05781792 -0.06022288 -0.06082875 -0.061375 -0.06239378 -0.0631734 -0.06239378 -0.061375 -0.06082875 -0.06022288 -0.05781792 -0.05532251 -0.05382011 -0.05160089 -0.05200069 -0.05310981 -0.05532251 -0.05860081 -0.06198809 -0.06396518 -0.06576273 -0.06647224 -0.06576273 -0.06396518 -0.06198809 -0.05860081 -0.05532251 -0.05310981 -0.05200069 -0.05073875 -0.05097254 -0.05200069 -0.05382011 -0.05703162 -0.06141806 -0.06606085 -0.06873581 -0.0696147 -0.06873581 -0.06606085 -0.06141806 -0.05703162 -0.05382011 -0.05200069 -0.05097254] -0.0711463725882109 -0.05036069300109748 -0.0711463725882109 0.1 -0.0448409589710898 [-0.04974208 -0.05011778 -0.05097169 -0.0527675 -0.05568452 -0.0603843 -0.06543733 -0.06919214 -0.0701869 -0.06919214 -0.06543733 -0.0603843 -0.05568452 -0.0527675 -0.05097169 -0.05011778 -0.05011778 -0.050349 -0.05136779 -0.05316749 -0.05633514 -0.0606464 -0.06520055 -0.06782533 -0.06869162 -0.06782533 -0.06520055 -0.0606464 -0.05633514 -0.05316749 -0.05136779 -0.050349 -0.05097169 -0.05136779 -0.05246522 -0.05464801 -0.05786834 -0.06118644 -0.06313716 -0.0649131 -0.06561256 -0.0649131 -0.06313716 -0.06118644 -0.05786834 -0.05464801 -0.05246522 -0.05136779 -0.0527675 -0.05316749 -0.05464801 -0.05709664 -0.05944702 -0.06004361 -0.06058407 -0.06159206 -0.06236167 -0.06159206 -0.06058407 -0.06004361 -0.05944702 -0.05709664 -0.05464801 -0.05316749 -0.05568452 -0.05633514 -0.05786834 -0.05944702 -0.0591942 -0.05867909 -0.05846271 -0.05860461 -0.05847839 -0.05860461 -0.05846271 -0.05867909 -0.0591942 -0.05944702 -0.05786834 -0.05633514 -0.0603843 -0.0606464 -0.06118644 -0.06004361 -0.05867909 -0.05760539 -0.05692031 -0.05566494 -0.05503606 -0.05566494 -0.05692031 -0.05760539 -0.05867909 -0.06004361 -0.06118644 -0.0606464 -0.06543733 -0.06520055 -0.06313716 -0.06058407 -0.05846271 -0.05692031 -0.05493882 -0.05343066 -0.0528219 -0.05343066 -0.05493882 -0.05692031 -0.05846271 -0.06058407 -0.06313716 -0.06520055 -0.06919214 -0.06782533 -0.0649131 -0.06159206 -0.05860461 -0.05566494 -0.05343066 -0.05209279 -0.05181492 -0.05209279 -0.05343066 -0.05566494 -0.05860461 -0.06159206 -0.0649131 -0.06782533 -0.0701869 -0.06869162 -0.06561256 -0.06236167 -0.05847839 -0.05503606 -0.0528219 -0.05181492 -0.05136478 -0.05181492 -0.0528219 -0.05503606 -0.05847839 -0.06236167 -0.06561256 -0.06869162 -0.06919214 -0.06782533 -0.0649131 -0.06159206 -0.05860461 -0.05566494 -0.05343066 -0.05209279 -0.05181492 -0.05209279 -0.05343066 -0.05566494 -0.05860461 -0.06159206 -0.0649131 -0.06782533 -0.06543733 -0.06520055 -0.06313716 -0.06058407 -0.05846271 -0.05692031 -0.05493882 -0.05343066 -0.0528219 -0.05343066 -0.05493882 -0.05692031 -0.05846271 -0.06058407 -0.06313716 -0.06520055 -0.0603843 -0.0606464 -0.06118644 -0.06004361 -0.05867909 -0.05760539 -0.05692031 -0.05566494 -0.05503606 -0.05566494 -0.05692031 -0.05760539 -0.05867909 -0.06004361 -0.06118644 -0.0606464 -0.05568452 -0.05633514 -0.05786834 -0.05944702 -0.0591942 -0.05867909 -0.05846271 -0.05860461 -0.05847839 -0.05860461 -0.05846271 -0.05867909 -0.0591942 -0.05944702 -0.05786834 -0.05633514 -0.0527675 -0.05316749 -0.05464801 -0.05709664 -0.05944702 -0.06004361 -0.06058407 -0.06159206 -0.06236167 -0.06159206 -0.06058407 -0.06004361 -0.05944702 -0.05709664 -0.05464801 -0.05316749 -0.05097169 -0.05136779 -0.05246522 -0.05464801 -0.05786834 -0.06118644 -0.06313716 -0.0649131 -0.06561256 -0.0649131 -0.06313716 -0.06118644 -0.05786834 -0.05464801 -0.05246522 -0.05136779 -0.05011778 -0.050349 -0.05136779 -0.05316749 -0.05633514 -0.0606464 -0.06520055 -0.06782533 -0.06869162 -0.06782533 -0.06520055 -0.0606464 -0.05633514 -0.05316749 -0.05136779 -0.050349 ] -0.07018690378530802 -0.049742079707344816 -0.07018690378530802 1.0 -0.04755701266191663 [-0.03796887 -0.03829345 -0.03898461 -0.04043374 -0.04272469 -0.04628137 -0.04986615 -0.05250098 -0.05321953 -0.05250098 -0.04986615 -0.04628137 -0.04272469 -0.04043374 -0.03898461 -0.03829345 -0.03829345 -0.03847339 -0.03930932 -0.04074822 -0.04319805 -0.04637451 -0.04966204 -0.05154588 -0.05220373 -0.05154588 -0.04966204 -0.04637451 -0.04319805 -0.04074822 -0.03930932 -0.03847339 -0.03898461 -0.03930932 -0.04018959 -0.04188052 -0.04424896 -0.04660494 -0.04810609 -0.04950748 -0.05004143 -0.04950748 -0.04810609 -0.04660494 -0.04424896 -0.04188052 -0.04018959 -0.03930932 -0.04043374 -0.04074822 -0.04188052 -0.0436632 -0.04527433 -0.04571096 -0.04616431 -0.04699257 -0.04760187 -0.04699257 -0.04616431 -0.04571096 -0.04527433 -0.0436632 -0.04188052 -0.04074822 -0.04272469 -0.04319805 -0.04424896 -0.04527433 -0.04505349 -0.04466211 -0.044508 -0.04459775 -0.04451544 -0.04459775 -0.044508 -0.04466211 -0.04505349 -0.04527433 -0.04424896 -0.04319805 -0.04628137 -0.04637451 -0.04660494 -0.04571096 -0.04466211 -0.04382686 -0.04323589 -0.04221457 -0.04169102 -0.04221457 -0.04323589 -0.04382686 -0.04466211 -0.04571096 -0.04660494 -0.04637451 -0.04986615 -0.04966204 -0.04810609 -0.04616431 -0.044508 -0.04323589 -0.04161945 -0.04037219 -0.03987275 -0.04037219 -0.04161945 -0.04323589 -0.044508 -0.04616431 -0.04810609 -0.04966204 -0.05250098 -0.05154588 -0.04950748 -0.04699257 -0.04459775 -0.04221457 -0.04037219 -0.03927045 -0.03904315 -0.03927045 -0.04037219 -0.04221457 -0.04459775 -0.04699257 -0.04950748 -0.05154588 -0.05321953 -0.05220373 -0.05004143 -0.04760187 -0.04451544 -0.04169102 -0.03987275 -0.03904315 -0.03866772 -0.03904315 -0.03987275 -0.04169102 -0.04451544 -0.04760187 -0.05004143 -0.05220373 -0.05250098 -0.05154588 -0.04950748 -0.04699257 -0.04459775 -0.04221457 -0.04037219 -0.03927045 -0.03904315 -0.03927045 -0.04037219 -0.04221457 -0.04459775 -0.04699257 -0.04950748 -0.05154588 -0.04986615 -0.04966204 -0.04810609 -0.04616431 -0.044508 -0.04323589 -0.04161945 -0.04037219 -0.03987275 -0.04037219 -0.04161945 -0.04323589 -0.044508 -0.04616431 -0.04810609 -0.04966204 -0.04628137 -0.04637451 -0.04660494 -0.04571096 -0.04466211 -0.04382686 -0.04323589 -0.04221457 -0.04169102 -0.04221457 -0.04323589 -0.04382686 -0.04466211 -0.04571096 -0.04660494 -0.04637451 -0.04272469 -0.04319805 -0.04424896 -0.04527433 -0.04505349 -0.04466211 -0.044508 -0.04459775 -0.04451544 -0.04459775 -0.044508 -0.04466211 -0.04505349 -0.04527433 -0.04424896 -0.04319805 -0.04043374 -0.04074822 -0.04188052 -0.0436632 -0.04527433 -0.04571096 -0.04616431 -0.04699257 -0.04760187 -0.04699257 -0.04616431 -0.04571096 -0.04527433 -0.0436632 -0.04188052 -0.04074822 -0.03898461 -0.03930932 -0.04018959 -0.04188052 -0.04424896 -0.04660494 -0.04810609 -0.04950748 -0.05004143 -0.04950748 -0.04810609 -0.04660494 -0.04424896 -0.04188052 -0.04018959 -0.03930932 -0.03829345 -0.03847339 -0.03930932 -0.04074822 -0.04319805 -0.04637451 -0.04966204 -0.05154588 -0.05220373 -0.05154588 -0.04966204 -0.04637451 -0.04319805 -0.04074822 -0.03930932 -0.03847339] -0.053219527682040337 -0.037968868274523324 -0.053219527682040337 10.0 -0.06718957630402682 [-0.01992998 -0.02017961 -0.02066188 -0.02169719 -0.02331763 -0.02587135 -0.02839556 -0.03031507 -0.03087156 -0.03031507 -0.02839556 -0.02587135 -0.02331763 -0.02169719 -0.02066188 -0.02017961 -0.02017961 -0.02029538 -0.02090113 -0.02192719 -0.02368566 -0.02592926 -0.02829088 -0.02963713 -0.03011641 -0.02963713 -0.02829088 -0.02592926 -0.02368566 -0.02192719 -0.02090113 -0.02029538 -0.02066188 -0.02090113 -0.02153766 -0.02276408 -0.02446983 -0.02615064 -0.02720204 -0.02820164 -0.02857588 -0.02820164 -0.02720204 -0.02615064 -0.02446983 -0.02276408 -0.02153766 -0.02090113 -0.02169719 -0.02192719 -0.02276408 -0.02407803 -0.02523658 -0.02553987 -0.02586814 -0.02643004 -0.0268409 -0.02643004 -0.02586814 -0.02553987 -0.02523658 -0.02407803 -0.02276408 -0.02192719 -0.02331763 -0.02368566 -0.02446983 -0.02523658 -0.0250904 -0.02483687 -0.02472523 -0.02474989 -0.02467054 -0.02474989 -0.02472523 -0.02483687 -0.0250904 -0.02523658 -0.02446983 -0.02368566 -0.02587135 -0.02592926 -0.02615064 -0.02553987 -0.02483687 -0.02426369 -0.02382915 -0.02309021 -0.02272437 -0.02309021 -0.02382915 -0.02426369 -0.02483687 -0.02553987 -0.02615064 -0.02592926 -0.02839556 -0.02829088 -0.02720204 -0.02586814 -0.02472523 -0.02382915 -0.02268636 -0.02183497 -0.02148491 -0.02183497 -0.02268636 -0.02382915 -0.02472523 -0.02586814 -0.02720204 -0.02829088 -0.03031507 -0.02963713 -0.02820164 -0.02643004 -0.02474989 -0.02309021 -0.02183497 -0.02107503 -0.02094064 -0.02107503 -0.02183497 -0.02309021 -0.02474989 -0.02643004 -0.02820164 -0.02963713 -0.03087156 -0.03011641 -0.02857588 -0.0268409 -0.02467054 -0.02272437 -0.02148491 -0.02094064 -0.02066394 -0.02094064 -0.02148491 -0.02272437 -0.02467054 -0.0268409 -0.02857588 -0.03011641 -0.03031507 -0.02963713 -0.02820164 -0.02643004 -0.02474989 -0.02309021 -0.02183497 -0.02107503 -0.02094064 -0.02107503 -0.02183497 -0.02309021 -0.02474989 -0.02643004 -0.02820164 -0.02963713 -0.02839556 -0.02829088 -0.02720204 -0.02586814 -0.02472523 -0.02382915 -0.02268636 -0.02183497 -0.02148491 -0.02183497 -0.02268636 -0.02382915 -0.02472523 -0.02586814 -0.02720204 -0.02829088 -0.02587135 -0.02592926 -0.02615064 -0.02553987 -0.02483687 -0.02426369 -0.02382915 -0.02309021 -0.02272437 -0.02309021 -0.02382915 -0.02426369 -0.02483687 -0.02553987 -0.02615064 -0.02592926 -0.02331763 -0.02368566 -0.02446983 -0.02523658 -0.0250904 -0.02483687 -0.02472523 -0.02474989 -0.02467054 -0.02474989 -0.02472523 -0.02483687 -0.0250904 -0.02523658 -0.02446983 -0.02368566 -0.02169719 -0.02192719 -0.02276408 -0.02407803 -0.02523658 -0.02553987 -0.02586814 -0.02643004 -0.0268409 -0.02643004 -0.02586814 -0.02553987 -0.02523658 -0.02407803 -0.02276408 -0.02192719 -0.02066188 -0.02090113 -0.02153766 -0.02276408 -0.02446983 -0.02615064 -0.02720204 -0.02820164 -0.02857588 -0.02820164 -0.02720204 -0.02615064 -0.02446983 -0.02276408 -0.02153766 -0.02090113 -0.02017961 -0.02029538 -0.02090113 -0.02192719 -0.02368566 -0.02592926 -0.02829088 -0.02963713 -0.03011641 -0.02963713 -0.02829088 -0.02592926 -0.02368566 -0.02192719 -0.02090113 -0.02029538] -0.030871557351376425 -0.01992997766911843 -0.030871557351376425 100.0 -0.02248272650788956 [-0.01339446 -0.0136225 -0.01405528 -0.01498552 -0.01643518 -0.01868535 -0.02085162 -0.02253451 -0.02300314 -0.02253451 -0.02085162 -0.01868535 -0.01643518 -0.01498552 -0.01405528 -0.0136225 -0.0136225 -0.01372431 -0.01427096 -0.0151934 -0.01675704 -0.01872537 -0.02079541 -0.02192082 -0.02233467 -0.02192082 -0.02079541 -0.01872537 -0.01675704 -0.0151934 -0.01427096 -0.01372431 -0.01405528 -0.01427096 -0.01484337 -0.0159345 -0.01744285 -0.01891561 -0.01982359 -0.02067734 -0.02098236 -0.02067734 -0.01982359 -0.01891561 -0.01744285 -0.0159345 -0.01484337 -0.01427096 -0.01498552 -0.0151934 -0.0159345 -0.01709922 -0.01809381 -0.01834125 -0.01862819 -0.01914079 -0.01952279 -0.01914079 -0.01862819 -0.01834125 -0.01809381 -0.01709922 -0.0159345 -0.0151934 -0.01643518 -0.01675704 -0.01744285 -0.01809381 -0.01793913 -0.01770262 -0.01761289 -0.01769243 -0.01766335 -0.01769243 -0.01761289 -0.01770262 -0.01793913 -0.01809381 -0.01744285 -0.01675704 -0.01868535 -0.01872537 -0.01891561 -0.01834125 -0.01770262 -0.01719837 -0.01686227 -0.0162501 -0.01593371 -0.0162501 -0.01686227 -0.01719837 -0.01770262 -0.01834125 -0.01891561 -0.01872537 -0.02085162 -0.02079541 -0.01982359 -0.01862819 -0.01761289 -0.01686227 -0.01588748 -0.01513372 -0.01482132 -0.01513372 -0.01588748 -0.01686227 -0.01761289 -0.01862819 -0.01982359 -0.02079541 -0.02253451 -0.02192082 -0.02067734 -0.01914079 -0.01769243 -0.0162501 -0.01513372 -0.01445616 -0.01432702 -0.01445616 -0.01513372 -0.0162501 -0.01769243 -0.01914079 -0.02067734 -0.02192082 -0.02300314 -0.02233467 -0.02098236 -0.01952279 -0.01766335 -0.01593371 -0.01482132 -0.01432702 -0.01409093 -0.01432702 -0.01482132 -0.01593371 -0.01766335 -0.01952279 -0.02098236 -0.02233467 -0.02253451 -0.02192082 -0.02067734 -0.01914079 -0.01769243 -0.0162501 -0.01513372 -0.01445616 -0.01432702 -0.01445616 -0.01513372 -0.0162501 -0.01769243 -0.01914079 -0.02067734 -0.02192082 -0.02085162 -0.02079541 -0.01982359 -0.01862819 -0.01761289 -0.01686227 -0.01588748 -0.01513372 -0.01482132 -0.01513372 -0.01588748 -0.01686227 -0.01761289 -0.01862819 -0.01982359 -0.02079541 -0.01868535 -0.01872537 -0.01891561 -0.01834125 -0.01770262 -0.01719837 -0.01686227 -0.0162501 -0.01593371 -0.0162501 -0.01686227 -0.01719837 -0.01770262 -0.01834125 -0.01891561 -0.01872537 -0.01643518 -0.01675704 -0.01744285 -0.01809381 -0.01793913 -0.01770262 -0.01761289 -0.01769243 -0.01766335 -0.01769243 -0.01761289 -0.01770262 -0.01793913 -0.01809381 -0.01744285 -0.01675704 -0.01498552 -0.0151934 -0.0159345 -0.01709922 -0.01809381 -0.01834125 -0.01862819 -0.01914079 -0.01952279 -0.01914079 -0.01862819 -0.01834125 -0.01809381 -0.01709922 -0.0159345 -0.0151934 -0.01405528 -0.01427096 -0.01484337 -0.0159345 -0.01744285 -0.01891561 -0.01982359 -0.02067734 -0.02098236 -0.02067734 -0.01982359 -0.01891561 -0.01744285 -0.0159345 -0.01484337 -0.01427096 -0.0136225 -0.01372431 -0.01427096 -0.0151934 -0.01675704 -0.01872537 -0.02079541 -0.02192082 -0.02233467 -0.02192082 -0.02079541 -0.01872537 -0.01675704 -0.0151934 -0.01427096 -0.01372431] -0.023003144283594342 -0.013394461916307799 -0.023003144283594342 1000.0 -0.015724553090266123 [-0.01228551 -0.01251153 -0.01294056 -0.01386249 -0.015299 -0.01753128 -0.01967858 -0.02135612 -0.02182337 -0.02135612 -0.01967858 -0.01753128 -0.015299 -0.01386249 -0.01294056 -0.01251153 -0.01251153 -0.01261249 -0.01315414 -0.01406865 -0.0156189 -0.01756993 -0.01962771 -0.02074449 -0.0211574 -0.02074449 -0.01962771 -0.01756993 -0.0156189 -0.01406865 -0.01315414 -0.01261249 -0.01294056 -0.01315414 -0.01372177 -0.01480319 -0.01629967 -0.01776217 -0.01866247 -0.01950926 -0.01981119 -0.01950926 -0.01866247 -0.01776217 -0.01629967 -0.01480319 -0.01372177 -0.01315414 -0.01386249 -0.01406865 -0.01480319 -0.01595955 -0.01694653 -0.01719146 -0.01747519 -0.01798269 -0.01836233 -0.01798269 -0.01747519 -0.01719146 -0.01694653 -0.01595955 -0.01480319 -0.01406865 -0.015299 -0.0156189 -0.01629967 -0.01694653 -0.01679228 -0.01655686 -0.01646646 -0.01654561 -0.01651659 -0.01654561 -0.01646646 -0.01655686 -0.01679228 -0.01694653 -0.01629967 -0.0156189 -0.01753128 -0.01756993 -0.01776217 -0.01719146 -0.01655686 -0.0160552 -0.01572278 -0.01511444 -0.01480044 -0.01511444 -0.01572278 -0.0160552 -0.01655686 -0.01719146 -0.01776217 -0.01756993 -0.01967858 -0.01962771 -0.01866247 -0.01747519 -0.01646646 -0.01572278 -0.01475479 -0.01400747 -0.01369805 -0.01400747 -0.01475479 -0.01572278 -0.01646646 -0.01747519 -0.01866247 -0.01962771 -0.02135612 -0.02074449 -0.01950926 -0.01798269 -0.01654561 -0.01511444 -0.01400747 -0.01333618 -0.01320799 -0.01333618 -0.01400747 -0.01511444 -0.01654561 -0.01798269 -0.01950926 -0.02074449 -0.02182337 -0.0211574 -0.01981119 -0.01836233 -0.01651659 -0.01480044 -0.01369805 -0.01320799 -0.01297466 -0.01320799 -0.01369805 -0.01480044 -0.01651659 -0.01836233 -0.01981119 -0.0211574 -0.02135612 -0.02074449 -0.01950926 -0.01798269 -0.01654561 -0.01511444 -0.01400747 -0.01333618 -0.01320799 -0.01333618 -0.01400747 -0.01511444 -0.01654561 -0.01798269 -0.01950926 -0.02074449 -0.01967858 -0.01962771 -0.01866247 -0.01747519 -0.01646646 -0.01572278 -0.01475479 -0.01400747 -0.01369805 -0.01400747 -0.01475479 -0.01572278 -0.01646646 -0.01747519 -0.01866247 -0.01962771 -0.01753128 -0.01756993 -0.01776217 -0.01719146 -0.01655686 -0.0160552 -0.01572278 -0.01511444 -0.01480044 -0.01511444 -0.01572278 -0.0160552 -0.01655686 -0.01719146 -0.01776217 -0.01756993 -0.015299 -0.0156189 -0.01629967 -0.01694653 -0.01679228 -0.01655686 -0.01646646 -0.01654561 -0.01651659 -0.01654561 -0.01646646 -0.01655686 -0.01679228 -0.01694653 -0.01629967 -0.0156189 -0.01386249 -0.01406865 -0.01480319 -0.01595955 -0.01694653 -0.01719146 -0.01747519 -0.01798269 -0.01836233 -0.01798269 -0.01747519 -0.01719146 -0.01694653 -0.01595955 -0.01480319 -0.01406865 -0.01294056 -0.01315414 -0.01372177 -0.01480319 -0.01629967 -0.01776217 -0.01866247 -0.01950926 -0.01981119 -0.01950926 -0.01866247 -0.01776217 -0.01629967 -0.01480319 -0.01372177 -0.01315414 -0.01251153 -0.01261249 -0.01315414 -0.01406865 -0.0156189 -0.01756993 -0.01962771 -0.02074449 -0.0211574 -0.02074449 -0.01962771 -0.01756993 -0.0156189 -0.01406865 -0.01315414 -0.01261249] -0.02182336623312078 -0.012285505995762735 -0.02182336623312078 10000.0 -0.015623802460115415 [-0.01225491 -0.01248094 -0.01290996 -0.01383191 -0.01526845 -0.01750101 -0.01964874 -0.02132691 -0.02179439 -0.02132691 -0.01964874 -0.01750101 -0.01526845 -0.01383191 -0.01290996 -0.01248094 -0.01248094 -0.01258189 -0.01312354 -0.01403806 -0.01558842 -0.01753968 -0.01959798 -0.02071515 -0.02112826 -0.02071515 -0.01959798 -0.01753968 -0.01558842 -0.01403806 -0.01312354 -0.01258189 -0.01290996 -0.01312354 -0.01369119 -0.01477266 -0.01626931 -0.01773214 -0.01863266 -0.01947968 -0.01978171 -0.01947968 -0.01863266 -0.01773214 -0.01626931 -0.01477266 -0.01369119 -0.01312354 -0.01383191 -0.01403806 -0.01477266 -0.01592918 -0.01691642 -0.0171615 -0.01744527 -0.01795277 -0.01833243 -0.01795277 -0.01744527 -0.0171615 -0.01691642 -0.01592918 -0.01477266 -0.01403806 -0.01526845 -0.01558842 -0.01626931 -0.01691642 -0.01676228 -0.01652689 -0.0164364 -0.01651539 -0.01648625 -0.01651539 -0.0164364 -0.01652689 -0.01676228 -0.01691642 -0.01626931 -0.01558842 -0.01750101 -0.01753968 -0.01773214 -0.0171615 -0.01652689 -0.01602511 -0.01569255 -0.01508396 -0.01476989 -0.01508396 -0.01569255 -0.01602511 -0.01652689 -0.0171615 -0.01773214 -0.01753968 -0.01964874 -0.01959798 -0.01863266 -0.01744527 -0.0164364 -0.01569255 -0.0147243 -0.01397689 -0.01366744 -0.01397689 -0.0147243 -0.01569255 -0.0164364 -0.01744527 -0.01863266 -0.01959798 -0.02132691 -0.02071515 -0.01947968 -0.01795277 -0.01651539 -0.01508396 -0.01397689 -0.01330556 -0.01317738 -0.01330556 -0.01397689 -0.01508396 -0.01651539 -0.01795277 -0.01947968 -0.02071515 -0.02179439 -0.02112826 -0.01978171 -0.01833243 -0.01648625 -0.01476989 -0.01366744 -0.01317738 -0.01294404 -0.01317738 -0.01366744 -0.01476989 -0.01648625 -0.01833243 -0.01978171 -0.02112826 -0.02132691 -0.02071515 -0.01947968 -0.01795277 -0.01651539 -0.01508396 -0.01397689 -0.01330556 -0.01317738 -0.01330556 -0.01397689 -0.01508396 -0.01651539 -0.01795277 -0.01947968 -0.02071515 -0.01964874 -0.01959798 -0.01863266 -0.01744527 -0.0164364 -0.01569255 -0.0147243 -0.01397689 -0.01366744 -0.01397689 -0.0147243 -0.01569255 -0.0164364 -0.01744527 -0.01863266 -0.01959798 -0.01750101 -0.01753968 -0.01773214 -0.0171615 -0.01652689 -0.01602511 -0.01569255 -0.01508396 -0.01476989 -0.01508396 -0.01569255 -0.01602511 -0.01652689 -0.0171615 -0.01773214 -0.01753968 -0.01526845 -0.01558842 -0.01626931 -0.01691642 -0.01676228 -0.01652689 -0.0164364 -0.01651539 -0.01648625 -0.01651539 -0.0164364 -0.01652689 -0.01676228 -0.01691642 -0.01626931 -0.01558842 -0.01383191 -0.01403806 -0.01477266 -0.01592918 -0.01691642 -0.0171615 -0.01744527 -0.01795277 -0.01833243 -0.01795277 -0.01744527 -0.0171615 -0.01691642 -0.01592918 -0.01477266 -0.01403806 -0.01290996 -0.01312354 -0.01369119 -0.01477266 -0.01626931 -0.01773214 -0.01863266 -0.01947968 -0.01978171 -0.01947968 -0.01863266 -0.01773214 -0.01626931 -0.01477266 -0.01369119 -0.01312354 -0.01248094 -0.01258189 -0.01312354 -0.01403806 -0.01558842 -0.01753968 -0.01959798 -0.02071515 -0.02112826 -0.02071515 -0.01959798 -0.01753968 -0.01558842 -0.01403806 -0.01312354 -0.01258189] -0.021794386534542548 -0.012254910251988162 -0.021794386534542548
<matplotlib.legend.Legend at 0x70e80c0cfe80>
ReZs = []
ImZs = []
omegas = []
G_cohs = []
G_incohs = []
Gs = []
xi_cohs = [] # renormalised dispersion
Gammas = []
GG_bubs = []
GG_bubs_refined = []
GG_cohcoh_bubs = []
GG_incohincoh_bubs = []
GG_cohincoh_bubs = []
GG_incohcoh_bubs = []
GGs_integrated = []
susc_sc_bubs = []
susc_dsc_bubs = []
BETA = 20.0
for obj in objs_doped_lefttop:# + objs_bubdiagnostics_doped_lefttop:
omega0 = obj["Omega0"]
print(omega0)
if omega0 < 1.0:
continue
omegas.append(omega0)
#objs_doped_rightbottom
Sig_RE = obj["RE_Sigma"][:, :, 0, 0]
Sig_IM = obj["IM_Sigma"][:, :, 0, 0]
momgrid = obj["Sigma_momgrid"]
fgrid = obj["Sigma_fgrid"]
plt.plot(fgrid, Sig_IM[:, 0], "*", label=obj["Omega0"])
delta_mu = obj["delta_mu"]
#Z, Sig_cont = compute_quasiparticle_properties(Sig_RE, Sig_IM, fgrid)
print(delta_mu)
mu = -1.0 + delta_mu
tp = -0.25
G_coh, Z, Gamma, xi_coh = compute_coherent_green(Sig_RE, Sig_IM, fgrid, momgrid, 1.0, tp, mu, no_interpolate= True)
G = compute_dressed_green(Sig_RE, Sig_IM, fgrid, momgrid, 1.0, tp, mu)
G_incoh = G - G_coh
G_cohs.append(G_coh)
Gs.append(G)
G_incohs.append(G_incoh)
xi_cohs.append(xi_coh)
ReZs.append(np.max(np.real(Z)))#[128+8])
ImZs.append(np.max(np.imag(Z)))#[128+8])
Gammas.append(np.min(Gamma))
GG_bub = compute_particle_particle_bubble(G, G, fgrid, momgrid, BETA, 1, tp, mu, extra_freq=1)
GG_bub_refined = compute_particle_particle_bubble_refined(G, G, fgrid, momgrid, refined_momgrid,
BETA, 1, tp, mu, extra_freq=1)
GG_bubs.append(GG_bub)
GG_bubs_refined.append(GG_bub_refined)
GG_cohcoh = compute_particle_particle_bubble_refined(G_coh, G_coh, fgrid, momgrid, refined_momgrid, BETA, 1, tp, mu, extra_freq=1)
GG_incohincoh = compute_particle_particle_bubble_refined(G_incoh, G_incoh, fgrid, momgrid, refined_momgrid, BETA, 1, tp, mu, extra_freq=1)
GG_cohincoh = compute_particle_particle_bubble_refined(G_coh, G_incoh, fgrid, momgrid, refined_momgrid, BETA, 1, tp, mu, extra_freq=1)
GG_incohcoh = compute_particle_particle_bubble_refined(G_incoh, G_coh, fgrid, momgrid, refined_momgrid, BETA, 1, tp, mu, extra_freq=1)
GG_cohcoh_bubs.append(GG_cohcoh)
GG_cohincoh_bubs.append(GG_cohincoh)
GG_incohcoh_bubs.append(GG_incohcoh)
GG_incohincoh_bubs.append(GG_incohincoh)
#GG_integrated = compute_particle_particle_bubble_q0_direct(G, G, fgrid, momgrid, BETA, 1, tp, mu, extra_freq=1)
#GGs_integrated.append(GG_integrated)
susc_sc_bubs.append(obj["chi_split"]["chi_sc_bubble"])
print(susc_sc_bubs)
#print(obj["chi_split"].keys())
susc_dsc_bubs.append(obj["chi_split"]["chi_dsc_bubble"])
plt.legend()
0.01 0.1 1.0 -0.04755701266191663 0 [0.7205328620027146] 10.0 -0.06718957630402682 0 [0.7205328620027146, 0.8004798364625794] 100.0 -0.02248272650788956 0 [0.7205328620027146, 0.8004798364625794, 0.8418950398120483] 1000.0 -0.015724553090266123 0 [0.7205328620027146, 0.8004798364625794, 0.8418950398120483, 0.8490972678435513] 10000.0 -0.015623802460115415 0 [0.7205328620027146, 0.8004798364625794, 0.8418950398120483, 0.8490972678435513, 0.8492915240329632]
<matplotlib.legend.Legend at 0x70e803f41ae0>
omegas_reordered = omegas[7:] + omegas[2:3] + omegas[3:7]
ReZs_reordered = ReZs[7:] + ReZs[2:3] + ReZs[3:7]
ImZs_reordered = ImZs[7:] + ImZs[2:3] + ImZs[3:7]
#omegas_reordered
objs_doped_lefttop[0]['filling']
0.39167883741726095
plt.plot(omegas[:], ReZs[:], "*-")
plt.xlabel(r"$\omega_0$")
plt.ylabel(r"Re Z")
plt.xscale("log")
#plt.yscale("log")
plt.plot(omegas[:], ImZs[:], "*-")
plt.ylim(0, 0.1)
plt.xlabel(r"$\omega_0$")
plt.ylabel(r"Im Z")
plt.xscale("log")
plt.figure()
plt.plot(omegas[:], Gammas[:], "*-")
plt.ylim(-0.07, 0)
plt.xlabel(r"$\omega_0$")
plt.ylabel(r"$\Gamma$")
plt.xscale("log")
Gammas
[-0.053219527682040337, -0.030871557351376425, -0.023003144283594342, -0.02182336623312078, -0.021794386534542548]
GammaXM_path_coarse = []
for idx in GammaXM_path:
if idx < 256:
GammaXM_path_coarse.append(idx)
GammaXM_path_coarse = list(dict.fromkeys(GammaXM_path_coarse))
GammaXM_path_coarse.append(0)
#print(GammaXM_path_coarse)
#print(momgrid[np.array(GammaXM_path_coarse)])
#plt.plot(xi_cohs[0][np.array(GammaXM_path_coarse)], "*-", label=omegas[2])
plt.plot(xi_cohs[1][np.array(GammaXM_path_coarse)], "*-", label=omegas[2])
plt.plot(xi_cohs[2][np.array(GammaXM_path_coarse)], "*-", label=omegas[2])
plt.plot(xi_cohs[3][np.array(GammaXM_path_coarse)], "*-")
plt.plot(xi_cohs[4][np.array(GammaXM_path_coarse)], "*-")
plt.plot(xi_cohs[5][np.array(GammaXM_path_coarse)], "*-")
plt.plot(xi_cohs[6][np.array(GammaXM_path_coarse)], "*-")
plt.legend()
<matplotlib.legend.Legend at 0x7dc754f2f490>
def get_G_value_by_n(n, G_array, N0, BETA, momentum_index, momentum_coord, t, tp, mu, fgrid):
"""
Retrieve the Green's function value corresponding to the Matsubara label n.
The provided G_array is defined for frequency labels n in the range [-N0, N0),
accessible at index n + N0. If n is within that range, return the value from G_array.
Otherwise, compute the bare Green's function for ω_n = (2n+1)*π/BETA.
Parameters:
n : int
Matsubara frequency label such that ω_n = (2n+1)*π/BETA.
G_array : numpy array of shape (n_freq, n_mom) with the Green's function.
N0 : int, equal to n_freq//2.
BETA : float, inverse temperature.
momentum_index : int, index for momentum in G_array.
momentum_coord : array-like, the momentum coordinate corresponding to momentum_index.
t, tp, mu : floats, parameters for the bare Green's function.
fgrid : numpy array of the available Matsubara frequencies (for n in [-N0, N0)).
Returns:
value : complex, G(iω_n, momentum_coord).
"""
# Check if n is within the provided window
if -N0 <= n < N0:
# Map frequency label n to array index:
idx = n + N0
return G_array[idx, momentum_index]
else:
# Compute ω_n = (2n+1)*π/BETA
omega = (2*n + 1) * np.pi / BETA
return compute_bare_green(1j * omega, momentum_coord, t, tp, mu)
def compute_particle_particle_bubble(G1, G2, fgrid, momgrid, BETA, t, tp, mu, extra_freq=10):
"""
Compute the particle-particle bubble Π(q, Ω=0, k) defined by:
Π(q,0,k) = (1/BETA) ∑_n G1(iω_n, k) * G2(iω_{-n-1}, p)
where the sum runs over an extended set of Matsubara frequency labels n. Here,
p = (q - k) mod (2π) is determined by momentum conservation.
The provided Green's functions G1 and G2 are defined for frequency labels n in
the range [-N0, N0), where N0 = n_freq//2, with the ordering that the index
n = -1 corresponds to index N0-1 and n = 0 corresponds to index N0.
If a frequency label required in the extended sum is not available in G1 or G2,
the bare Green's function is used.
Momentum arithmetic is performed using momgrid which is arranged as:
momgrid[i] = ((i//K_DIM)*2π/K_DIM, (i % K_DIM)*2π/K_DIM)
Parameters:
G1, G2 : numpy arrays of shape (n_freq, n_mom) containing the Green's functions.
fgrid : numpy array of available Matsubara frequencies (covers n in [-N0, N0)).
momgrid : numpy array of shape (K_DIM*K_DIM, 2) containing momentum coordinates.
BETA : float, inverse temperature.
t, tp, mu : floats, parameters for the bare Green's function.
extra_freq: int, additional frequency labels (beyond the provided window) to integrate over.
Returns:
bubble : numpy array of shape (n_mom, n_mom)
The particle-particle bubble with the first index corresponding to external momentum q,
and the second to internal momentum k.
"""
n_freq = len(fgrid)
N0 = n_freq // 2 # Provided frequency window covers n in [-N0, N0)
# Define the extended frequency integration range
n_ext = N0 + extra_freq # sum over n from -n_ext to n_ext - 1
n_mom = len(momgrid)
# Determine K_DIM from the fact that momgrid contains K_DIM*K_DIM points.
K_DIM = int(np.sqrt(n_mom))
delta = 2 * np.pi / K_DIM
P_IN_K = 5.0
K_DIM_REFINED = K_DIM * P_IN_K
delta_refined = 2*np.pi/K_DIM_REFINED
n_mom_refined = K_DIM_REFINED*K_DIM_REFINED
# Initialize the bubble array.
bubble = np.zeros((1, n_mom), dtype=complex)
# Loop over external momentum indices q.
for q_index in range(1):
print(q_index)
q = momgrid[q_index] # external momentum coordinate
# Loop over internal momentum indices k.
for k_index in range(n_mom):
k_coord = momgrid[k_index]
# Compute partner momentum p = (q - k) modulo 2π (componentwise).
p_coord = ((q[0] - k_coord[0]) % (2*np.pi),
(q[1] - k_coord[1]) % (2*np.pi))
# Find the index corresponding to p_coord.
i_x = int((p_coord[0] / delta)) % K_DIM
i_y = int((p_coord[1] / delta)) % K_DIM
p_index = i_x * K_DIM + i_y
# Initialize the frequency sum.
sum_over_n = 0.0 + 0.0j
# Sum over extended frequency labels n.
for n in range(-n_ext, n_ext):
# For G1, use frequency label n at momentum k.
G1_val = get_G_value_by_n(n, G1, N0, BETA, k_index, momgrid[k_index], t, tp, mu, fgrid)
# For G2, use frequency label -n-1 (since -ω_n = ω_{-n-1}) at momentum p.
G2_val = get_G_value_by_n(-n-1, G2, N0, BETA, p_index, momgrid[p_index], t, tp, mu, fgrid)
sum_over_n += G1_val * G2_val
# Divide by BETA as prescribed.
bubble[q_index, k_index] = sum_over_n / BETA
return bubble
def get_G_value_refined(n, G_array, N0, BETA, fine_mom, coarse_momgrid, K_DIM, t, tp, mu, d_coarse):
"""
For a given Matsubara label n and a momentum coordinate fine_mom (on the refined grid),
return the appropriate Green's function value:
- If –N₀ ≤ n < N₀, then the interacting Green's function is available only on the coarse grid.
In that case we project the fine momentum to the coarse grid by rounding to the nearest
multiple of d_coarse = 2π/K_DIM, and then return G_array[n+N0, coarse_index].
- Otherwise (i.e. for high frequencies), return the bare Green's function computed using
the fine momentum coordinate.
Parameters:
n : int
Matsubara label (ωₙ = (2n+1)π/BETA).
G_array : numpy array of shape (n_freq, n_coarse) containing the interacting Green's function.
N0 : int, equal to n_freq//2.
BETA : float, inverse temperature.
fine_mom : 2-element array-like, the fine momentum coordinate.
coarse_momgrid : numpy array of shape (K_DIM*K_DIM, 2) with the coarse momentum coordinates.
K_DIM : int, the linear dimension of the coarse grid.
t, tp, mu : floats, model parameters.
d_coarse : float, grid step on the coarse grid (2π/K_DIM).
Returns:
value : complex, G(iωₙ, fine_mom) evaluated either via projection (if |n| < N0)
or via the bare Green's function (if |n| ≥ N0).
"""
if -N0 <= n < N0:
# Project fine_mom onto the coarse grid.
kx, ky = fine_mom
proj_kx = (np.round(kx / d_coarse) * d_coarse) % (2 * np.pi)
proj_ky = (np.round(ky / d_coarse) * d_coarse) % (2 * np.pi)
# Determine coarse indices (using the same ordering as in coarse_momgrid):
i_x = int(np.round(proj_kx / d_coarse)) % K_DIM
i_y = int(np.round(proj_ky / d_coarse)) % K_DIM
coarse_index = i_x * K_DIM + i_y
return G_array[n + N0, coarse_index]
else:
# For high frequencies, use the bare Green's function computed at the fine momentum.
omega = (2 * n + 1) * np.pi / BETA
return compute_bare_green(1j * omega, fine_mom, t, tp, mu)
def compute_particle_particle_bubble_refined(G1, G2, fgrid, coarse_momgrid, refined_momgrid,
BETA, t, tp, mu, extra_freq=10):
"""
Compute the particle-particle bubble as a function of two momenta on a refined grid.
The refined momentum grid has size (K_DIM*P_IN_K)², where K_DIM is the size of the coarse grid.
For a pair of refined momenta (q, k), the bubble (at Ω = 0) is defined as:
Π(q,0,k) = (1/β) ∑ₙ G₁(iωₙ, k_fine) · G₂(iω₋ₙ₋₁, p_fine),
where the partner momentum is given by p_fine = (q – k) mod 2π (evaluated on the refined grid).
Since the interacting Green's functions (which include the self‐energy) are only defined on the
coarse momentum grid, when |n| < N₀ (with N₀ = n_freq//2) the fine momentum is projected onto
the coarse grid (by rounding to the nearest multiple of 2π/K_DIM). For high frequencies, the bare
Green's function is used and the fine momentum is employed directly.
Parameters:
G1, G2 : numpy arrays of shape (n_freq, n_coarse) containing the interacting Green's functions
on the coarse grid.
fgrid : numpy array of available Matsubara frequencies (for labels n in [–N₀, N₀)).
coarse_momgrid : numpy array of shape (K_DIM², 2) containing the coarse momentum coordinates.
refined_momgrid: numpy array of shape (n_refined, 2) containing the refined momentum coordinates,
where n_refined = (K_DIM * P_IN_K)².
BETA : float, inverse temperature.
t, tp, mu : floats, model parameters.
extra_freq : int, extra frequency labels (beyond the provided window) to extend the sum.
Returns:
bubble : numpy array of shape (n_refined, n_refined) representing the bubble as a function
of the two refined momenta (q and k).
"""
n_freq = len(fgrid)
N0 = n_freq // 2 # interacting frequencies are available for n in [–N₀, N₀)
n_ext = N0 + extra_freq # extend the frequency sum to n ∈ [–n_ext, n_ext)
n_refined = refined_momgrid.shape[0]
K_DIM = int(np.sqrt(coarse_momgrid.shape[0]))
d_coarse = 2 * np.pi / K_DIM # spacing of the coarse grid
bubble = np.zeros((n_refined, n_refined), dtype=complex)
# Loop over refined external momentum q and internal momentum k.
for iq, q in enumerate([(0.0, 0.0), ]):
for ik, k in enumerate(refined_momgrid):
# Compute partner momentum on the refined grid: p = (q - k) mod 2π (componentwise)
p = ( (q[0] - k[0]) % (2 * np.pi), (q[1] - k[1]) % (2 * np.pi) )
freq_sum = 0.0 + 0.0j
# Sum over extended Matsubara labels.
for n in range(-n_ext, n_ext):
# For G₁, use momentum k (fine coordinate).
G1_val = get_G_value_refined(n, G1, N0, BETA, k, coarse_momgrid, K_DIM, t, tp, mu, d_coarse)
# For G₂, the frequency pairing gives label –n–1 and the momentum is p (fine coordinate).
G2_val = get_G_value_refined(-n - 1, G2, N0, BETA, p, coarse_momgrid, K_DIM, t, tp, mu, d_coarse)
freq_sum += G1_val * G2_val
bubble[iq, ik] = freq_sum / BETA
return bubble
import numpy as np
def compute_particle_particle_bubble_q0_fft(G1, G2, fgrid, momgrid, BETA, t, tp, mu, extra_freq=10):
"""
Compute the particle-particle bubble at q=0 and Ω=0, integrated over momentum,
using the convolution theorem (via FFT).
The bubble is defined as:
\[
\Pi(0,0)=\frac{1}{\beta}\sum_n\;\sum_k G_1(i\omega_n,k)\,G_2(i\omega_{-n-1},-k)
\]
Here the sum over momentum k is computed as a convolution using FFT.
The Green's functions G1 and G2 are assumed to be defined on a momentum grid with
\(K\_DIM\times K\_DIM\) points (flattened into an array of length \(n_{mom}\)). The grid is
assumed to be ordered as:
\[
\text{momgrid}[i] = \Bigl(\frac{i//K\_DIM\cdot 2\pi}{K\_DIM},\,\frac{i \% K\_DIM\cdot 2\pi}{K\_DIM}\Bigr)
\]
and the frequency labels follow \(n\in[-N_0, N_0)\) with \(N_0=\texttt{n_freq}//2\).
When a frequency label required in the extended sum is out of the provided window,
the bare Green's function is used.
Parameters:
G1, G2 : numpy arrays of shape (n_freq, n_mom) containing the Green's functions.
fgrid : numpy array of Matsubara frequencies corresponding to labels in [-N0, N0).
momgrid : numpy array of shape (n_mom, 2) with momentum coordinates.
BETA : float, inverse temperature.
t, tp, mu : floats, model parameters.
extra_freq: int, additional frequency labels (beyond the provided window) to sum over.
Returns:
bubble_q0 : complex, the particle-particle bubble at q=0, Ω=0.
"""
n_freq = len(fgrid)
N0 = n_freq // 2 # Provided labels: n in [-N0, N0)
n_ext = N0 + extra_freq # Extended frequency summation: n from -n_ext to n_ext-1
n_mom = len(momgrid)
K_DIM = int(np.sqrt(n_mom))
total_mom_points = K_DIM * K_DIM # Should equal n_mom
bubble_sum = 0.0 + 0.0j
# Loop over extended Matsubara frequency labels.
for n in range(-n_ext, n_ext):
# Get G1 at frequency label n (iωₙ) as a momentum array.
G1_n = get_G_array_by_n(n, G1, N0, BETA, momgrid, t, tp, mu, fgrid)
# Get G2 at frequency label -n-1 (since -ωₙ = ω₋ₙ₋₁).
G2_n = get_G_array_by_n(-n-1, G2, N0, BETA, momgrid, t, tp, mu, fgrid)
# Reshape these 1D arrays (of length n_mom) into 2D arrays of shape (K_DIM, K_DIM).
G1_n_2d = G1_n.reshape(K_DIM, K_DIM)
G2_n_2d = G2_n.reshape(K_DIM, K_DIM)
# For the partner momentum -k, we flip the array G2_n_2d.
G2_n_flipped = np.flip(np.flip(G2_n_2d, axis=0), axis=1)
# Compute the circular convolution using FFT:
# By the convolution theorem, the sum over momentum k is given by:
# S = total_mom_points * [ifft2(fft2(G1_n_2d)*fft2(G2_n_flipped))]_{(0,0)}
conv = np.fft.ifft2(np.fft.fft2(G1_n_2d) * np.fft.fft2(G2_n_flipped))
momentum_sum = total_mom_points * conv[0, 0]
bubble_sum += momentum_sum
bubble_q0 = bubble_sum / BETA
return bubble_q0
import numpy as np
def compute_bare_green(freq, k, t, tp, mu):
"""
Compute the bare Green's function G0 for a given momentum coordinate and frequency.
Parameters:
freq : complex or float
Frequency at which to evaluate the Green's function.
For Matsubara frequencies, pass freq = 1j * omega.
k : array-like of length 2
Momentum coordinate [kx, ky] in the Brillouin zone.
t : float
Nearest-neighbor hopping amplitude.
tp : float
Next-nearest-neighbor hopping amplitude.
mu : float
Chemical potential.
Returns:
G0 : complex
The bare Green's function, i.e. \(G_0(i\omega,k)=\frac{1}{i\omega-(\epsilon(k)-\mu)}\).
"""
kx, ky = k
epsilon = -2 * t * (np.cos(kx) + np.cos(ky)) - 4 * tp * np.cos(kx) * np.cos(ky)
xi = epsilon - mu
return 1.0 / (freq - xi)
def get_G_array_by_n(n, G_array, N0, BETA, momgrid, t, tp, mu, fgrid):
"""
Return the momentum-dependent Green's function at Matsubara label n.
The provided G_array is defined for labels n in [-N0, N0) (accessible as index n+N0).
If n is out of this range, the bare Green's function is computed for each momentum.
Parameters:
n : int
Matsubara label such that \(\omega_n = (2n+1)\pi/\beta\).
G_array : numpy array of shape (n_freq, n_mom) containing the Green's function.
N0 : int, equal to n_freq//2.
BETA : float, inverse temperature.
momgrid : numpy array of shape (n_mom, 2) with momentum coordinates.
t, tp, mu: floats, parameters for the bare Green's function.
fgrid : numpy array of available Matsubara frequencies (for labels in [-N0, N0)).
Returns:
result : numpy array of shape (n_mom,) corresponding to \(G(i\omega_n,k)\) for each momentum.
"""
n_mom = len(momgrid)
result = np.zeros(n_mom, dtype=complex)
if -N0 <= n < N0:
result[:] = G_array[n + N0, :]
else:
omega = (2 * n + 1) * np.pi / BETA
for i in range(n_mom):
result[i] = compute_bare_green(1j * omega, momgrid[i], t, tp, mu)
return result
def compute_particle_particle_bubble_q0_direct(G1, G2, fgrid, momgrid, BETA, t, tp, mu, extra_freq=10):
"""
Compute the particle-particle bubble at q=0 and Ω=0, integrated over momentum,
by directly summing over momentum indices (without using FFT).
The bubble is defined as:
\[
\Pi(0,0) = \frac{1}{\beta}\sum_{n}\,\sum_{k} G_1(i\omega_n,k)\,G_2(i\omega_{-n-1},-k)
\]
Here, for each momentum k the partner momentum is computed as:
\[
-k \equiv \bigl( (-k_x)\bmod 2\pi,\; (-k_y)\bmod 2\pi \bigr).
\]
The momentum grid is assumed to be a regular \(K\_DIM \times K\_DIM\) grid (flattened
to an array of length n_mom), with
\[
\text{momgrid}[i] = \Bigl(\frac{i//K\_DIM\cdot 2\pi}{K\_DIM},\,\frac{i \% K\_DIM\cdot 2\pi}{K\_DIM}\Bigr).
\]
If a given Matsubara label is not available in G1 or G2, the bare Green's function is used.
Parameters:
G1, G2 : numpy arrays of shape (n_freq, n_mom) containing the Green's functions.
fgrid : numpy array of Matsubara frequencies corresponding to labels in [-N0, N0).
momgrid : numpy array of shape (n_mom, 2) with momentum coordinates.
BETA : float, inverse temperature.
t, tp, mu : floats, model parameters.
extra_freq: int, additional frequency labels (beyond the provided window) to sum over.
Returns:
bubble_q0 : complex, the particle-particle bubble at q=0, Ω=0 computed directly.
"""
n_freq = len(fgrid)
N0 = n_freq // 2 # Provided labels: n in [-N0, N0)
n_ext = N0 + extra_freq # Extended frequency summation: n from -n_ext to n_ext-1
n_mom = len(momgrid)
# Determine K_DIM from momgrid (assuming a square grid)
K_DIM = int(np.sqrt(n_mom))
delta = 2 * np.pi / K_DIM
bubble_sum = 0.0 + 0.0j
# Loop over extended Matsubara frequency labels.
for n in range(-n_ext, n_ext):
# Loop over momentum indices k.
for k_index in range(n_mom):
k_coord = momgrid[k_index]
# Compute partner momentum: -k modulo 2π.
p_coord = ( (-k_coord[0]) % (2 * np.pi), (-k_coord[1]) % (2 * np.pi) )
# Determine the index corresponding to p_coord.
i_x = int(round(p_coord[0] / delta)) % K_DIM
i_y = int(round(p_coord[1] / delta)) % K_DIM
p_index = i_x * K_DIM + i_y
# Retrieve Green's function values:
# G1 at frequency label n for momentum k.
G1_val = get_G_array_by_n(n, G1, N0, BETA, momgrid, t, tp, mu, fgrid)[k_index]
# G2 at frequency label -n-1 for momentum p.
G2_val = get_G_array_by_n(-n-1, G2, N0, BETA, momgrid, t, tp, mu, fgrid)[p_index]
bubble_sum += G1_val * G2_val
bubble_q0 = bubble_sum / BETA
return bubble_q0
def compute_particle_particle_bubble_q0_fft(G1, G2, fgrid, momgrid, BETA, t, tp, mu, extra_freq=10):
"""
Compute the particle-particle bubble at q=0 and Ω=0, integrated over momentum,
using the convolution theorem (via FFT).
The bubble is defined as:
\[
\Pi(0,0)=\frac{1}{\beta}\sum_n\;\sum_k G_1(i\omega_n,k)\,G_2(i\omega_{-n-1},-k)
\]
Here the sum over momentum k is computed as a convolution using FFT.
The Green's functions G1 and G2 are assumed to be defined on a momentum grid with
\(K\_DIM\times K\_DIM\) points (flattened into an array of length \(n_{mom}\)). The grid is
assumed to be ordered as:
\[
\text{momgrid}[i] = \Bigl(\frac{i//K\_DIM\cdot 2\pi}{K\_DIM},\,\frac{i \% K\_DIM\cdot 2\pi}{K\_DIM}\Bigr)
\]
and the frequency labels follow \(n\in[-N_0, N_0)\) with \(N_0=\texttt{n_freq}//2\).
When a frequency label required in the extended sum is out of the provided window,
the bare Green's function is used.
Parameters:
G1, G2 : numpy arrays of shape (n_freq, n_mom) containing the Green's functions.
fgrid : numpy array of Matsubara frequencies corresponding to labels in [-N0, N0).
momgrid : numpy array of shape (n_mom, 2) with momentum coordinates.
BETA : float, inverse temperature.
t, tp, mu : floats, model parameters.
extra_freq: int, additional frequency labels (beyond the provided window) to sum over.
Returns:
bubble_q0 : complex, the particle-particle bubble at q=0, Ω=0.
"""
n_freq = len(fgrid)
N0 = n_freq // 2 # Provided labels: n in [-N0, N0)
n_ext = N0 + extra_freq # Extended frequency summation: n from -n_ext to n_ext-1
n_mom = len(momgrid)
K_DIM = int(np.sqrt(n_mom))
total_mom_points = K_DIM * K_DIM # Should equal n_mom
bubble_sum = 0.0 + 0.0j
# Loop over extended Matsubara frequency labels.
for n in range(-n_ext, n_ext):
# Get G1 at frequency label n (iωₙ) as a momentum array.
G1_n = get_G_array_by_n(n, G1, N0, BETA, momgrid, t, tp, mu, fgrid)
# Get G2 at frequency label -n-1 (since -ωₙ = ω₋ₙ₋₁).
G2_n = get_G_array_by_n(-n-1, G2, N0, BETA, momgrid, t, tp, mu, fgrid)
# Reshape these 1D arrays (of length n_mom) into 2D arrays of shape (K_DIM, K_DIM).
G1_n_2d = G1_n.reshape(K_DIM, K_DIM)
G2_n_2d = G2_n.reshape(K_DIM, K_DIM)
# For the partner momentum -k, we flip the array G2_n_2d.
G2_n_flipped = np.flip(np.flip(G2_n_2d, axis=0), axis=1)
# Compute the circular convolution using FFT:
# By the convolution theorem, the sum over momentum k is given by:
# S = total_mom_points * [ifft2(fft2(G1_n_2d)*fft2(G2_n_flipped))]_{(0,0)}
conv = np.fft.ifft2(np.fft.fft2(G1_n_2d) * np.fft.fft2(G2_n_flipped))
momentum_sum = total_mom_points * conv[0, 0]
bubble_sum += momentum_sum
bubble_q0 = bubble_sum / BETA
return bubble_q0
# === Example Usage ===
if __name__ == "__main__":
import matplotlib.pyplot as plt
# Model parameters.
t = 1.0
tp = 0.3
mu = 0.0
BETA = 10.0
# Frequency grid: assume n_freq frequencies with labels n in [-N0, N0)
n_freq = 50 # For example, n in [-25, 25)
N0 = n_freq // 2
n_labels = np.arange(-N0, N0)
fgrid = (2 * n_labels + 1) * np.pi / BETA # Matsubara frequencies.
# Momentum grid parameters: K_DIM x K_DIM grid.
K_DIM = 20
n_mom = K_DIM * K_DIM
momgrid = np.zeros((n_mom, 2))
for i in range(n_mom):
momgrid[i, 0] = (i // K_DIM) * (2 * np.pi / K_DIM)
momgrid[i, 1] = (i % K_DIM) * (2 * np.pi / K_DIM)
# For testing, create synthetic G1 and G2 arrays.
# Here, for simplicity, we use the bare Green's functions.
G1 = np.zeros((n_freq, n_mom), dtype=complex)
G2 = np.zeros((n_freq, n_mom), dtype=complex)
for i, n in enumerate(n_labels):
omega = (2 * n + 1) * np.pi / BETA
for m in range(n_mom):
G1[i, m] = compute_bare_green(1j * omega, momgrid[m], t, tp, mu)
G2[i, m] = compute_bare_green(1j * omega, momgrid[m], t, tp, mu)
bubble_q0 = compute_particle_particle_bubble_q0_fft(G1, G2, fgrid, momgrid, BETA, t, tp, mu, extra_freq=10)
bubble_q02 = compute_particle_particle_bubble_q0_direct(G1, G2, fgrid, momgrid, BETA, t, tp, mu, extra_freq=10)
print("Particle-particle bubble at q=0, Ω=0:", bubble_q0, bubble_q02)
--------------------------------------------------------------------------- KeyboardInterrupt Traceback (most recent call last) /tmp/ipykernel_190305/1736176749.py in <module> 305 306 bubble_q0 = compute_particle_particle_bubble_q0_fft(G1, G2, fgrid, momgrid, BETA, t, tp, mu, extra_freq=10) --> 307 bubble_q02 = compute_particle_particle_bubble_q0_direct(G1, G2, fgrid, momgrid, BETA, t, tp, mu, extra_freq=10) 308 print("Particle-particle bubble at q=0, Ω=0:", bubble_q0, bubble_q02) 309 /tmp/ipykernel_190305/1736176749.py in compute_particle_particle_bubble_q0_direct(G1, G2, fgrid, momgrid, BETA, t, tp, mu, extra_freq) 194 G1_val = get_G_array_by_n(n, G1, N0, BETA, momgrid, t, tp, mu, fgrid)[k_index] 195 # G2 at frequency label -n-1 for momentum p. --> 196 G2_val = get_G_array_by_n(-n-1, G2, N0, BETA, momgrid, t, tp, mu, fgrid)[p_index] 197 198 bubble_sum += G1_val * G2_val /tmp/ipykernel_190305/1736176749.py in get_G_array_by_n(n, G_array, N0, BETA, momgrid, t, tp, mu, fgrid) 126 omega = (2 * n + 1) * np.pi / BETA 127 for i in range(n_mom): --> 128 result[i] = compute_bare_green(1j * omega, momgrid[i], t, tp, mu) 129 return result 130 /tmp/ipykernel_190305/1736176749.py in compute_bare_green(freq, k, t, tp, mu) 95 """ 96 kx, ky = k ---> 97 epsilon = -2 * t * (np.cos(kx) + np.cos(ky)) - 4 * tp * np.cos(kx) * np.cos(ky) 98 xi = epsilon - mu 99 return 1.0 / (freq - xi) KeyboardInterrupt:
the_bubs = []
del the_bubs
the_bubs = []
the_bubs_refined = []
for bub in GG_bubs:
GG_bub = 0.0
for k_idx in range(256):
kx, ky = momgrid[k_idx]
ff = np.power(np.cos(kx) - np.cos(ky), 2.0)
GG_bub += ff*bub[0, k_idx]/(16.0*16.0)
the_bubs.append(GG_bub)
for bub in GG_bubs_refined:
GG_bub = 0.0
for k_idx in range(256*25):
kx, ky = refined_momgrid[k_idx]
ff = np.power(np.cos(kx) - np.cos(ky), 2.0)
GG_bub += ff*bub[0, k_idx]/(16.0*16.0*5.0*5.0)
the_bubs_refined.append(GG_bub)
the_GG_cohcoh_bubs = []
for bub in GG_cohcoh_bubs:
the_GG_cohcoh_bub = 0.0
for k_idx in range(256*25):
kx, ky = refined_momgrid[k_idx]
ff = np.power(np.cos(kx) - np.cos(ky), 2.0)
the_GG_cohcoh_bub += ff*bub[0, k_idx]/(16.0*16.0*5.0*5.0)
the_GG_cohcoh_bubs.append(the_GG_cohcoh_bub)
the_GG_cohincoh_bubs = []
for bub in GG_cohincoh_bubs:
the_GG_cohincoh_bub = 0.0
for k_idx in range(256*25):
kx, ky = refined_momgrid[k_idx]
ff = np.power(np.cos(kx) - np.cos(ky), 2.0)
the_GG_cohincoh_bub += 2.0*ff*bub[0, k_idx]/(16.0*16.0*5.0*5.0)
the_GG_cohincoh_bubs.append(the_GG_cohincoh_bub)
the_GG_incohincoh_bubs = []
for bub in GG_incohincoh_bubs:
the_GG_incohincoh_bub = 0.0
for k_idx in range(256*25):
kx, ky = refined_momgrid[k_idx]
ff = np.power(np.cos(kx) - np.cos(ky), 2.0)
the_GG_incohincoh_bub += ff*bub[0, k_idx]/(16.0*16.0*5.0*5.0)
the_GG_incohincoh_bubs.append(the_GG_incohincoh_bub)
omg_array = np.array(omegas[0:-1]).astype('int').astype('str')
omg_array
array(['1', '10', '100', '1000'], dtype='<U21')
#fig, axes = plt.subplots(nrows=3, ncols=2, figsize=(4.0*2*0.9, 4.2*3*0.9)) # Adjust figsize as needed
#plt.plot(np.array(omegas[2:-1]).astype('str'), the_bubs[2:-1], "*-", label=r"$\Pi^{dSC}$")
plt.plot(omg_array, the_bubs_refined[0:-1], "*-", label=r"$\Pi^{dSC}$")
plt.plot(omg_array, the_GG_cohcoh_bubs[0:-1], "*", label=r"$\Pi^{dSC}_{coh,coh}$")
plt.plot(omg_array, the_GG_incohincoh_bubs[0:-1], ".", label=r"$\Pi^{dSC}_{incoh,incoh}$")
plt.plot(omg_array, the_GG_cohincoh_bubs[0:-1], "o", label=r"$\Pi^{dSC}_{coh,incoh}$")
#plt.plot(np.array(omegas[2:-1]).astype('str'), susc_dsc_bubs[2:-1], "*-", label=r"$\Pi^{dSC}pp$")
plt.axhline(y=0, color='grey', linestyle='--')
#plt.plot(np.array(omegas[2:-1]).astype('str'), np.array(GGs_integrated[2:-1])/296.0)
plt.ylabel(r"$\Pi^{dSC}(q= 0)t$")
plt.xlabel(r"$\omega_0/t$")
#plt.xscale("log")
plt.legend()
<matplotlib.legend.Legend at 0x70e7f4bf7d60>
import matplotlib.pyplot as plt
from matplotlib.gridspec import GridSpec
# Create a figure
fig = plt.figure(figsize=(3.8*2*0.9, 3.4*1*0.9))
# Define the GridSpec layout
gs = GridSpec(2, 3, width_ratios=[3, 1, 1], height_ratios=[1.0, 1]) # 2 rows, 3 columns
# Left plot (big one)
ax1 = fig.add_subplot(gs[:, 0]) # Occupy both rows in the first column
#ax1.set_title(' Left Plot')
ax1.plot(omg_array, the_bubs_refined[0:-1], "*--", label=r"$\Pi^{\mathrm{dSC}}$", markerfacecolor='white', markeredgecolor='black', markersize=12)
ax1.plot(omg_array, the_GG_cohcoh_bubs[0:-1], "*", label=r"$\Pi^{\mathrm{dSC}}_{\mathrm{coh-coh}}$")
ax1.plot(omg_array, the_GG_incohincoh_bubs[0:-1], ".", label=r"$\Pi^{\mathrm{dSC}}_{\mathrm{incoh-incoh}}$")
ax1.plot(omg_array, the_GG_cohincoh_bubs[0:-1], "o", label=r"$\Pi^{\mathrm{dSC}}_{\mathrm{coh-incoh}}$")
#plt.plot(np.array(omegas[2:-1]).astype('str'), susc_dsc_bubs[2:-1], "*-", label=r"$\Pi^{dSC}pp$")
ax1.axhline(y=0, color='grey', linestyle='--')
#plt.plot(np.array(omegas[2:-1]).astype('str'), np.array(GGs_integrated[2:-1])/296.0)
ax1.set_ylabel(r"$\Pi^{\mathrm{dSC}}t$")
ax1.set_xlabel(r"$\omega_0/t$")
ax1.legend()
# Right plots (smaller ones stacked vertically)
ax2 = fig.add_subplot(gs[0, 1]) # Top right
ax2.set_ylim([0.6, 1.0])
ax2.plot(ReZs[0:-1], "*-", color="black") # Example plot
ax2.set_xticks([])
ax2.set_title(r'$Z$')
ax3 = fig.add_subplot(gs[1, 1]) # Bottom right
ax3.set_ylim([-0.07, 0.0])
ax3.plot(Gammas[0:-1], "*-", color="red") # Example plot
ax3.set_xticks([])
ax3.set_title(r'$\Gamma/t$')
plt.subplots_adjust(wspace=0.5, hspace=0.35)
# Display the plots
#plt.tight_layout()
#plt.show()
plt.savefig('dwave_bub_fluctdiag_Z_and_Gamma.pdf', dpi=300, bbox_inches='tight', pad_inches=0.05) # Save the figure with higher DPI for better resolution
np.array(GGs_integrated[2:-1])/susc_sc_bubs[2:-1]
array([280.65145026+0.j, 291.24692267+0.j, 294.56971592+0.j,
295.21260249+0.j])def test_polynomial_interpolation(fgrid, IM_Sigma, momentum_index=0):
"""
Test the cubic polynomial interpolation on the imaginary part of the self-energy
for a given momentum index.
Parameters:
fgrid : numpy array of Matsubara frequencies (real numbers).
IM_Sigma : numpy array of shape (n_freq, n_mom) containing the imaginary part
of the self-energy.
momentum_index : int, optional (default=0)
The momentum index on which to perform the test.
This function:
- Selects three Matsubara frequency points starting from index n_freq//2.
- Performs a cubic interpolation using np.polyfit.
- Plots the interpolated polynomial curve over a fine grid and compares it with
the original discrete data points.
Returns:
p : numpy.poly1d
The polynomial object representing the cubic interpolation.
"""
n_freq = len(fgrid)
# Assume the first Matsubara frequency is at index n_freq//2.
idx0 = n_freq // 2
# Use the three points: idx0, idx0+1, idx0+2.
indices = [idx0, idx0+1, idx0+2]
indices_more = [idx0, idx0+1, idx0+2, idx0+3, idx0+4, idx0+5, idx0+6, idx0+7, idx0+8, idx0+9, idx0+10, idx0+11, idx0+12, idx0+13, idx0+14, idx0+15, idx0+16, idx0+17]
# Extract the corresponding frequencies and imaginary part of Sigma for the given momentum.
f_data = fgrid[indices]
f_data_more = fgrid[indices_more]
print(f_data_more)
sigma_data = IM_Sigma[indices, momentum_index]
# Perform a cubic (degree 3) polynomial fit.
coeffs = np.polyfit(f_data, sigma_data, 3)
p = np.poly1d(coeffs)
# Create a fine frequency grid for plotting the interpolated polynomial.
f_fit = np.linspace(0, f_data_more[-1], 200)
sigma_fit = p(f_fit)
sig_data_to_plot = IM_Sigma[indices_more, momentum_index]
sig_data_fit = p(f_fit)
# Plot the interpolated polynomial and the original data points.
plt.figure(figsize=(8, 6))
plt.plot(f_fit, sig_data_fit, label='Cubic Polynomial Fit', color='blue')
plt.scatter(f_data_more, sig_data_to_plot, label='Data Points', color='red', zorder=5)
plt.xlabel('Matsubara frequency')
plt.ylabel('Imaginary part of Sigma')
plt.title(f'Cubic Polynomial Interpolation (Momentum index {momentum_index})')
plt.legend()
plt.show()
print("Cubic polynomial coefficients (highest degree first):", coeffs)
return p
test_polynomial_interpolation(fgrid, Sig_IM)
plt.plot(fgrid, Sig_IM[:, 0], "*")
[0.15707963 0.4712389 0.78539816 1.09955743 1.41371669 1.72787596 2.04203522 2.35619449 2.67035376 2.98451302 3.29867229 3.61283155 3.92699082 4.24115008 4.55530935 4.86946861 5.18362788 5.49778714]
Cubic polynomial coefficients (highest degree first): [ 0.00276551 -0.00227387 -0.00430614 -0.00027125]
[<matplotlib.lines.Line2D at 0x78faa641d2d0>]
plot_inv_sucs(objs_finitedoping_vh2p5_u3, title ="$U = 3t, V_h = 2.5t$")
plot_fluct_diag_chi('sc', objs_=objs_finitedoping_vh2p5_u3, title ="$U = 3t, V_h = 2.5t$")
plot_fluct_diag_chi('d', objs_=objs_finitedoping_vh2p5_u3, title ="$U = 3t, V_h = 2.5t$")
plot_fluct_diag_chi('m', objs_=objs_finitedoping_vh2p5_u3, title ="$U = 3t, V_h = 2.5t$")
plot_fluct_diag_chi('m', objs_=objs_half_filling_no_SE_Vh_1p5, title =r"$U = 2.5t, V_h = 2.5t, {\Sigma} = 0$")
plt.plot(-objs_half_filling_no_SE_Vh_1p5[1]["w_d"], "*")
[<matplotlib.lines.Line2D at 0x7df44f1f5150>]
objs_half_filling_no_SE_Vh_1p5[1]["w_d"][320]
1.7531939280049903e-14
from scipy.optimize import curve_fit
def linear(x, c):
return -x + c
def plot_d_susc_vs_g0(objs, title_ = ""):
objs_ = sorted(objs, key=lambda o: o["Vh"] )
plt.grid(True)
#plt.ylim([2, 5])
#plt.xlim([0.0, 3.5])
plt.title(r"$\Omega = "+str(objs[0]['Omega0'])+r"$")
plt.xlabel(r"$2g_0^2/\Omega_0$")
plt.ylabel(r"$\chi_D^{-1}(\pi, \pi)$")
#plt.xscale('log')
chi_vals = []
Vh_vals = []
for o in objs_:
if o["max_d"] != o["max_d"] or math.isinf(o["max_d"]):
continue
if o["max_d"] == 0:
continue
else:
chi_vals.append(1.0/o["max_d"])
Vh_vals.append(o["Vh"])
#print(chi_vals)
popt, pcov = curve_fit(linear, Vh_vals, chi_vals, p0=[0])
print(round(pcov[0][0], 4))
fitted_y_vals = [linear(x, popt[0]) for x in Vh_vals]
plt.plot(Vh_vals, chi_vals, "*-", label=r"$U$ = "+str(objs[0]['U']))
plt.plot(Vh_vals, fitted_y_vals, "-.")
fname = r"/home/aiman/final_beta20_hubbardholstein/doping_lefttop_beta20Vh1p0U2p5/dat__g00p070711_OMEGA00p01_U2p5_V0_TP-0p2_Mu-0p8_KDIM16_FineMoms6400_RefdMoms410_FFShellCount1p5_BETA20_C8_T_START5_Square Hubbard-Holstein_OMFL_FLOWEQN_MULTI1LOOP_1SELOOP_FIXFILLING_RESTFUNC_ALLSYMM_PRECOMPPROJ_SELFEN_FLOW/final.h5"
f = h5py.File(fname)
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# --- PARAMETRI CONFIGURABILI ---
Lx, Ly = 3, 3
# Occupazioni: 0 = vuoto, '1u' = spin up, '1d' = spin down, 2 = doppia occupazione, '0_'=occupato in precedenza
occupazioni = [
'1u', 0, 2,
'1d', '1u', '0_green',
'0_red', 2, '1u'
]
# Siti con interazione U attiva (solo se il sito è doppiamente occupato)
sites_with_U = [(0, 2), (2, 1)] # coordinate (i, j)
# --- FUNZIONE PER PAIRING INTERNO ---
def draw_internal_pairing(ax, x0, y0, z0=0.2, amp=0.05, n_waves=4, color='purple'):
x_start = x0 - 0.4
x_end = x0 + 0.4
t = np.linspace(0, 1, 100)
x = x_start + (x_end - x_start) * t
y = np.full_like(t, y0)
z = z0 + amp * np.sin(4 * np.pi * n_waves * t)
ax.plot(x, y, z, color=color, linewidth=2)
def draw_hopping_arrow(ax, x1, y1, x2, y2, z_base=0.25, z_peak=0.6,
color='blue', linestyle='--', n_points=100):
t = np.linspace(0, 1, n_points)
x = x1 + 0.1 + (x2 - x1 - 0.3) * t
y = y1 - 0.1 + (y2 - y1 - 0.1) * t
# arco in z: parte e finisce a z_base, raggiunge z_peak in mezzo
z = z_base + (+ 2 * (z_peak - z_base)) * t * (1 - t)
# Corpo della curva (freccia spezzata)
ax.plot(x, y, z, color=color, linestyle=linestyle, linewidth=2)
# Punta della freccia in fondo (direzione tangente)
i_arrow = -2 # penultimo e ultimo punto
dx = x[i_arrow+1] - x[i_arrow]
dy = y[i_arrow+1] - y[i_arrow]
dz = z[i_arrow+1] - z[i_arrow]
ax.quiver(x[i_arrow], y[i_arrow], z[i_arrow],
dx, dy, dz, color=color, arrow_length_ratio=0.2, linewidth=1)
# --- CODICE GRAFICO ---
x = np.linspace(-1, 1, 30)
y = np.linspace(-1, 1, 30)
X, Y = np.meshgrid(x, y)
Z = -np.exp(-10 * (X**2 + Y**2))
fig = plt.figure(figsize=(10, 10))
ax = fig.add_subplot(111, projection='3d')
# Griglia di sotto
for i in range(Lx):
ax.plot([i * 3, i * 3], [0, Ly * 3], [-1.1]*2, color='black', linewidth=1.5)
for j in range(Ly):
ax.plot([0, Lx * 3], [j * 3, j * 3], [-1.1]*2, color='black', linewidth=1.5)
# Siti
site_list = [(i, j) for j in range(Ly) for i in range(Lx)] # ordine riga per riga
for idx, (i, j) in enumerate(site_list):
x0, y0 = i * 3, j * 3
occ = occupazioni[idx]
# Pozzo
ax.plot_surface(X + x0, Y + y0, Z, color='blue', alpha=0.1, linewidth=0)
# Elettroni
if occ == '1u':
ax.scatter(x0, y0, 0.2, color='red', s=500)
ax.quiver(x0, y0, 0.2, 0, 0, 0.25, color='red', arrow_length_ratio=0.5, lw=4)
elif occ == '1d':
ax.scatter(x0, y0, 0.2, color='green', s=500)
ax.quiver(x0, y0, 0.2, 0, 0, -0.25, color='green', arrow_length_ratio=0.5, lw=4)
elif occ == 2:
ax.scatter(x0 - 0.4, y0, 0.2, color='red', s=500)
ax.quiver(x0 - 0.4, y0, 0.2, 0, 0, 0.25, color='red', arrow_length_ratio=0.5, lw=4)
ax.scatter(x0 + 0.4, y0, 0.2, color='green', s=500)
ax.quiver(x0 + 0.4, y0, 0.2, 0, 0, -0.25, color='green', arrow_length_ratio=0.5, lw=4)
draw_internal_pairing(ax, x0, y0, z0=0.2)
elif occ == '0_red':
ax.scatter(x0 - 0.2, y0, 0.2, color='red', alpha=0.2, s=500)
ax.quiver(x0 - 0.2, y0, 0.2, 0, 0, 0.25, color='red', alpha=0.2, arrow_length_ratio=0.5, lw=4)
elif occ == '0_green':
ax.scatter(x0 - 0.2, y0, 0.2, color='green', alpha=0.2, s=500)
ax.quiver(x0 - 0.2, y0, 0.2, 0, 0, -0.25, color='green', alpha=0.2, arrow_length_ratio=0.5, lw=4)
# testo
ax.text(3, 6.5, 0.3, "U", fontsize=20, color='purple', ha='center', weight='bold')
ax.text(0.75, 6.5, 0.35, "-t", fontsize=20, color='blue', ha='center', weight='bold')
# hopping
x1, y1 = 0 * 3, 2 * 3
x2, y2 = 1 * 3, 2 * 3
draw_hopping_arrow(ax, x1, y1, x2, y2)
# Setup
ax.set_xlim(0, Lx*3)
ax.set_ylim(0, Ly*3)
ax.set_zlim(-1.2, 1)
ax.axis('off')
plt.tight_layout()
plt.show()
/tmp/ipykernel_13027/2535438097.py:55: UserWarning: cmr10 font should ideally be used with mathtext, set axes.formatter.use_mathtext to True ax = fig.add_subplot(111, projection='3d')