def save_new_preprocess_gamma_for_fft_benchmark(filename, p): eliashberg_ingredients = create_eliashberg_ingredients(p) gamma = eliashberg_ingredients.gamma gamma_dyn_tr, gamma_const_r = preprocess_gamma_for_fft(gamma) p.gamma = gamma p.gamma_dyn_tr = gamma_dyn_tr p.gamma_const_r = gamma_const_r write_TarGZ_HDFArchive(filename, p=p)
def save_new_benchmarks(filename, p): eliashberg_ingredients = create_eliashberg_ingredients(p) g0_wk = eliashberg_ingredients.g0_wk gamma = eliashberg_ingredients.gamma Gamma_pp_dyn_tr, Gamma_pp_const_r = preprocess_gamma_for_fft(gamma) next_delta = eliashberg_product_fft(Gamma_pp_dyn_tr, Gamma_pp_const_r, g0_wk, g0_wk) Es, eigen_modes = solve_eliashberg(gamma, g0_wk, product='FFT', solver='IRAM') p.next_delta = next_delta p.E = Es[0] p.eigen_mode = eigen_modes[0] write_TarGZ_HDFArchive(filename, p=p)
if __name__ == '__main__': p = ParameterCollection( filename="preprocess_gamma_for_fft_benchmark_new.tar.gz", benchmark_filename="preprocess_gamma_for_fft_benchmark.tar.gz", dim=1, norb=2, t=2.0, mu=0.0, beta=5, U=1.0, Up=0.8, J=0.1, Jp=0.1, nk=3, nw=500, version_info=version.info, ) eliashberg_ingredients = create_eliashberg_ingredients(p) gamma = eliashberg_ingredients.gamma U_d = eliashberg_ingredients.U_d U_m = eliashberg_ingredients.U_m test_split_into_dynamic_wk_and_constant_k_mesh_types(gamma) test_split_into_dynamic_wk_and_constant_k_mesh_values(gamma, U_d, U_m) test_dynamic_and_constant_to_tr_mesh_types(gamma) test_preprocess_gamma_for_fft_types(gamma) #save_new_preprocess_gamma_for_fft_benchmark(p.filename, p) test_preprocess_gamma_for_fft_benchmark(gamma, p)
dim=1, norb=2, t1=1.0, t2=0.5, t12=0.1, t21=0.1, mu=0.0, beta=1, U=1.0, Up=0.8, J=0.1, Jp=0.1, nk=3, nw=30, atol=1e-8, ) eliashberg_ingredients = create_eliashberg_ingredients(p) g0_wk = eliashberg_ingredients.g0_wk gamma = eliashberg_ingredients.gamma # For the eliashberg SUM procedure a Gamma with a twice as big w-mesh then the GF is needed. big_nw = 2 * p.nw + 1 eliashberg_ingredients_big = create_eliashberg_ingredients( p.alter(nw=big_nw)) gamma_big = eliashberg_ingredients_big.gamma test_eliashberg_product_for_same_initital_delta(g0_wk, gamma, gamma_big) test_eliashberg_product_for_different_initital_delta( g0_wk, gamma, gamma_big) #plot_output(g0_wk, gamma)