Increase maximum iterations
This commit is contained in:
parent
7029fdaf56
commit
e3545e4fbe
|
|
@ -125,6 +125,7 @@ function (H::Hamiltonian)(v)
|
||||||
end
|
end
|
||||||
|
|
||||||
tolerance = 1e-6
|
tolerance = 1e-6
|
||||||
|
max_iterations = 500
|
||||||
|
|
||||||
"Wrapper for KrylovKit.eigsolve"
|
"Wrapper for KrylovKit.eigsolve"
|
||||||
function eig(H::Hamiltonian{T}, levels::Int; resonances = !H.hermitian)::Tuple{Vector,Vector,KrylovKit.ConvergenceInfo} where {T<:Float}
|
function eig(H::Hamiltonian{T}, levels::Int; resonances = !H.hermitian)::Tuple{Vector,Vector,KrylovKit.ConvergenceInfo} where {T<:Float}
|
||||||
|
|
@ -134,7 +135,7 @@ function eig(H::Hamiltonian{T}, levels::Int; resonances = !H.hermitian)::Tuple{V
|
||||||
x₀ = CUDA.rand(Complex{T}, vectorDims(H)...)
|
x₀ = CUDA.rand(Complex{T}, vectorDims(H)...)
|
||||||
synchronize()
|
synchronize()
|
||||||
end
|
end
|
||||||
evals, evecs, info = eigsolve(H, x₀, levels, resonances ? :LI : :SR; ishermitian = H.hermitian, tol = tolerance, krylovdim = levels * 8)
|
evals, evecs, info = eigsolve(H, x₀, levels, resonances ? :LI : :SR; ishermitian = H.hermitian, tol = tolerance, krylovdim = levels * 8, maxiter = max_iterations)
|
||||||
info.converged < levels && throw(error("Not enough convergence"))
|
info.converged < levels && throw(error("Not enough convergence"))
|
||||||
if H.hermitian evals = real.(evals) end
|
if H.hermitian evals = real.(evals) end
|
||||||
if H.mode == gpu_cutensor # to avoid possible GPU memory leak
|
if H.mode == gpu_cutensor # to avoid possible GPU memory leak
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue