include("../EC.jl") include("../common.jl") include("../p_space.jl") # contour p, w = get_mesh([0, 0.4 - 0.15im, 0.8, 6], [128, 128, 128]) μ = 0.5 V_system(c) = (p, q) -> c*(-5*g0(sqrt(3), p, q) + 2*g0(sqrt(10), p, q)) # ResonanceEC: Eq. (20) # generating a Berggren basis with a pole using the same system basis_c = 0.6 basis_E, berg_basis = eigen(get_H_matrix(V_system(basis_c), p, w); permute=false, scale=false) basis_p = sqrt.(basis_E) N_berg = sqrt.(diag(transpose(berg_basis .* w) * berg_basis)) berg_basis = berg_basis ./ transpose(N_berg) berg_basis_w = berg_basis .* w H0 = transpose(berg_basis_w) * get_T_matrix(p, μ) * berg_basis V = transpose(berg_basis_w) * get_V_matrix(V_system(1), p, w) * berg_basis training_c = range(1.1, 0.9, 5) # original: range(1.35, 0.9, 5) extrapolating_c = range(0.78, 0.45, 7) # original: range(0.75, 0.40, 8) training_ref = -0.26 extrapolating_ref = [quick_pole_E(V_system(c)) for c in extrapolating_c] EC = affine_EC(H0, V) train!(EC, training_c; ref_eval=training_ref, CAEC=true) extrapolate!(EC, extrapolating_c; ref_eval=extrapolating_ref) exportCSV(EC, "temp/2b_GSM_B2R.csv") plot(EC, "temp/2b_GSM_B2R.pdf"; basis_points=basis_E, xlims=(0, 0.3), ylims=(-0.120, 0.020))