Пример #1
0
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)
Пример #2
0
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)
Пример #3
0
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)
Пример #4
0
        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)