Skip to content

Commit 7cfcbe3

Browse files
authored
Merge pull request #119 from JuliaLinearAlgebra/vs/118
Fix #118
2 parents 4cb1b35 + d014b07 commit 7cfcbe3

File tree

2 files changed

+44
-2
lines changed

2 files changed

+44
-2
lines changed

Project.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "Arpack"
22
uuid = "7d9fca2a-8960-54d3-9f78-7d1dccf2cb97"
3-
version = "0.5.0"
3+
version = "0.5.1"
44

55
[deps]
66
Arpack_jll = "68821587-b530-5797-8361-c406ea357684"
@@ -9,7 +9,7 @@ LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
99
Logging = "56ddb016-857b-54e1-b83d-db4d58db5568"
1010

1111
[compat]
12-
Arpack_jll = "3.8"
12+
Arpack_jll = "~3.5"
1313
julia = "1.3"
1414

1515
[extras]

test/runtests.jl

+42
Original file line numberDiff line numberDiff line change
@@ -333,3 +333,45 @@ let A = [1. 0. 0.; 0. 0. 0.; 0. 0. 0.]
333333
@test U'U I
334334
@test V'V I
335335
end
336+
337+
# Problematic example from #118
338+
@testset "issue 118" begin
339+
ωc = 1.2
340+
ωa = 0.9
341+
γ = 0.5
342+
κ = 1.1
343+
344+
sz = sparse(ComplexF64[1 0; 0 -1])
345+
sp = sparse(ComplexF64[0 1; 0 0])
346+
sm = sparse(collect(sp'))
347+
ids = one(sz)
348+
349+
a = sparse(diagm(1 => ComplexF64[sqrt(i) for i=1:10]))
350+
ida = one(a)
351+
352+
Ha = kron(ida, 0.5*ωa*sz)
353+
Hc = kron(ωc*a'*a, ids)
354+
Hint = sparse(kron(a', sm) + kron(a, sp))
355+
H = Ha + Hc + Hint
356+
357+
Ja = kron(ida, sqrt(γ)*sm)
358+
Jc = kron(sqrt(κ)*a, ids)
359+
J = sqrt(2) .* [Ja, Jc]
360+
Jdagger = adjoint.(J)
361+
rates = 0.5 .* ones(length(J))
362+
363+
spre(x) = kron(one(x), x)
364+
spost(x) = kron(permutedims(x), one(x))
365+
366+
L = spre(-1im*H) + spost(1im*H)
367+
for i=1:length(J)
368+
jdagger_j = rates[i]/2*Jdagger[i]*J[i]
369+
L -= spre(jdagger_j) + spost(jdagger_j)
370+
L += spre(rates[i]*J[i]) * spost(Jdagger[i])
371+
end
372+
373+
for _=1:100
374+
d, rest = eigs(L, nev=2, which=:LR)
375+
@test abs(d[1]) < 1e-9
376+
end
377+
end

0 commit comments

Comments
 (0)