43 lines
807 B
Julia
43 lines
807 B
Julia
# ./En.run -d 3 -n 3 -e 5 -c eps=0 -c pot=v_gauss,v0=-4,r=2 -N 6 -L 5:14 -c n_imag=1
|
|
|
|
using CUDA
|
|
|
|
GPU_mode = !("CPU" in ARGS) && CUDA.functional() && CUDA.has_cuda() && CUDA.has_cuda_gpu()
|
|
|
|
println("Running with ",Threads.nthreads()," thread(s)")
|
|
|
|
if GPU_mode
|
|
include("GPU.jl")
|
|
println("Available GPUs:")
|
|
print(" ")
|
|
println.(name.(devices()))
|
|
else
|
|
include("CPU.jl")
|
|
end
|
|
|
|
T=Float32
|
|
|
|
function V_zero(r2::T)::T
|
|
return 0.0
|
|
end
|
|
|
|
function V_test(r2::T)::T
|
|
return -4*exp(-r2/4)
|
|
end
|
|
|
|
N=6
|
|
n_image=1
|
|
μ=0.5
|
|
|
|
levels=5
|
|
|
|
for L::T in 5.0:14.0
|
|
H=HOperator{T}(V_test,3,3,N,L,convert(T,μ),n_image)
|
|
if GPU_mode
|
|
CUDA.@time evals,evecs,info=eig(H,levels)
|
|
else
|
|
@time evals,evecs,info=eig(H,levels)
|
|
end
|
|
print(info.numops," operations : ")
|
|
println(evals)
|
|
end |