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