diff --git a/.gitignore b/.gitignore index 1fbef14..90354d9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +# HPC scripts and logs +hpc/ + # Calculation outputs *.dat *.csv diff --git a/calculations/3b_bound.jl b/calculations/3b_bound.jl new file mode 100644 index 0000000..d968bc5 --- /dev/null +++ b/calculations/3b_bound.jl @@ -0,0 +1,19 @@ +include("../Hamiltonian.jl") +mode = cpu_tensor +T = Float32 + +V_gauss(r2) = -2 * exp(-r2 / 4) + +d = 3 +n = 3 +N = 20 +L = 15 +n_imag = 1 +ϕ = 0 + +s = system{T}(d, n, N, L) +H = Hamiltonian{T}(s, V_gauss, ϕ, n_imag, mode) +@time evals, _, info = eig(H, 5) + +print(info.numops, " operations") +display(evals) diff --git a/calculations/3b_res_from_paper.jl b/calculations/3b_res_from_paper.jl new file mode 100644 index 0000000..db2036a --- /dev/null +++ b/calculations/3b_res_from_paper.jl @@ -0,0 +1,36 @@ +# 10.1007/s00601-020-01550-8 +# Fig. 7 +# E_R = 4.18(8) + +#./En.run -d 3 -n 3 -N 16 -c pot=v_shifted_gauss,v0=2.0,r=1.5,a=3.0 -c n_eig=20 -c which=li -c tol=1e-6 -L 16 -c phi=0.3 -v + +include("../Hamiltonian.jl") +mode = cpu_tensor +T = Float32 # single-precision mode + +using Plots + +V_gauss(r2) = + 2 * exp(-((sqrt(r2) - 3) / 1.5) ^ 2) + +d = 3 +n = 3 +N = 16 +L = 16 +n_imag = 0 + +for ϕ::T in 0.2:0.05:0.4 + s = system{T}(d, n, N, L) + H = Hamiltonian{T}(s, V_gauss, ϕ, n_imag, mode) + @time evals, _, info = eig(H, 20) + + print(info.numops, " operations") + display(evals) + + scatter(real.(evals), imag.(evals); legend=false) + xlabel!("Re E") + ylabel!("Im E") + xlims!(0, 6) + ylims!(-0.6, 0) + savefig("temp/phi$(Int(round(ϕ * 100))).png") +end \ No newline at end of file diff --git a/calculations/ComplexScaling-FV-P-res.jl b/calculations/ComplexScaling-FV-P-res.jl new file mode 100644 index 0000000..d5f8893 --- /dev/null +++ b/calculations/ComplexScaling-FV-P-res.jl @@ -0,0 +1,24 @@ +include("../Hamiltonian.jl") +mode = cpu_tensor +T = Float32 # single-precision mode + +V_gauss(r2) = + -10 * exp(-(sqrt(r2)) ^ 2) + +d = 3 +n = 2 +N = 96 +ϕ = pi/6 +n_imag = 1 + +open("ComplexScaling-FV-P-res.dat", "w") do f + for L = range(20, 35, length=16) + println("Calculating L=", L) + s = system{T}(d, n, N, L) + H = Hamiltonian{T}(s, V_gauss, ϕ, n_imag, mode) + @time evals, _, info = eig(H, 40) + + dataline = vcat([L], hcat(real.(evals), imag.(evals))'[:]) + println(f, join(dataline, '\t')) + end +end diff --git a/calculations/ComplexScaling-FV-S-bound-phi.jl b/calculations/ComplexScaling-FV-S-bound-phi.jl new file mode 100644 index 0000000..1e57012 --- /dev/null +++ b/calculations/ComplexScaling-FV-S-bound-phi.jl @@ -0,0 +1,24 @@ +include("../Hamiltonian.jl") +mode = cpu_tensor +T = Float32 # single-precision mode + +V_gauss(r2) = + -10 * exp(-(sqrt(r2)) ^ 2) + +d = 3 +n = 2 +N = 30 +L = 6 +n_imag = 1 + +open("ComplexScaling-FV-S-bound-phi.dat", "w") do f + for ϕ = range(0.0, 0.5, length=11) + println("Calculating ϕ=", ϕ) + s = system{T}(d, n, N, L) + H = Hamiltonian{T}(s, V_gauss, ϕ, n_imag, mode) + @time evals, _, info = eig(H, 10, resonances = false) + + dataline = vcat([ϕ], hcat(real.(evals), imag.(evals))'[:]) + println(f, join(dataline, '\t')) + end +end diff --git a/calculations/ComplexScaling-FV-S-res-phi.jl b/calculations/ComplexScaling-FV-S-res-phi.jl new file mode 100644 index 0000000..9e16ec9 --- /dev/null +++ b/calculations/ComplexScaling-FV-S-res-phi.jl @@ -0,0 +1,24 @@ +include("../Hamiltonian.jl") +mode = cpu_tensor +T = Float32 # single-precision mode + +V_gauss(r2) = + 2 * exp(- ((sqrt(r2)-3)/1.5) ^ 2) + +d = 3 +n = 2 +N = 96 +L = 30 +n_imag = 1 + +open("ComplexScaling-FV-S-res-phi.dat", "w") do f + for ϕ = range(0.1, 0.6, length=26) + println("Calculating ϕ=", ϕ) + s = system{T}(d, n, N, L) + H = Hamiltonian{T}(s, V_gauss, ϕ, n_imag, mode) + @time evals, _, info = eig(H, 40, resonances = true) + + dataline = vcat([ϕ], hcat(real.(evals), imag.(evals))'[:]) + println(f, join(dataline, '\t')) + end +end