Store explicit H matrix in the memory and solve
This commit is contained in:
parent
677a09d680
commit
94acb12d5f
|
|
@ -0,0 +1,42 @@
|
|||
include("CPU.jl")
|
||||
|
||||
T=Float32
|
||||
|
||||
function V_test(r2)
|
||||
return -4 * exp(-r2 / 4)
|
||||
end
|
||||
|
||||
d = 1
|
||||
n = 3
|
||||
N = 8
|
||||
L::T = 16
|
||||
n_imag = 0
|
||||
μ::T = 0.5
|
||||
|
||||
H = HOperator{T}(V_test, d, n, N, L, μ, n_imag)
|
||||
dim = N ^ (d * (n - 1))
|
||||
H_mat = zeros(Complex{T}, dim, dim)
|
||||
iter = CartesianIndices(vectorDims(H))
|
||||
|
||||
open("temp/mat_dump.csv", "w") do f
|
||||
# this can be heavily optimized by getting rid of 'bi' vector
|
||||
for i in 1 : dim
|
||||
bi = zeros(Complex{T}, vectorDims(H)...)
|
||||
bi[iter[i]] = 1
|
||||
|
||||
for j in 1 : dim
|
||||
bj = zeros(Complex{T}, vectorDims(H)...)
|
||||
bj[iter[j]] = 1
|
||||
|
||||
Hbj = similar(bj)
|
||||
Hbj = mul!(Hbj, H, bj)
|
||||
|
||||
H_mat[i, j] = dot(bi, Hbj)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
evals, _ = eigen(H_mat)
|
||||
evals = real.(evals)
|
||||
|
||||
print(evals)
|
||||
Loading…
Reference in New Issue