34 lines
1.2 KiB
Julia
34 lines
1.2 KiB
Julia
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(0.79, 0.66, 4) # original: range(1.35, 0.9, 5)
|
|
extrapolating_c = range(0.62, 0.40, 6) # original: range(0.75, 0.40, 8)
|
|
|
|
training_ref = [quick_pole_E(V_system(c)) for c in training_c]
|
|
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=false)
|
|
extrapolate!(EC, extrapolating_c; ref_eval=extrapolating_ref)
|
|
|
|
exportCSV(EC, "temp/2b_GSM_R2R.csv")
|
|
plot(EC, "temp/2b_GSM_R2R.pdf"; basis_points=basis_E, xlims=(0, 0.3), ylims=(-0.120, 0.020))
|