GTorlai / PastaQ.jl

Package for Simulation, Tomography and Analysis of Quantum Computers
Apache License 2.0
142 stars 23 forks source link

Choi matrix for depolarizing channel fails #186

Closed GTorlai closed 3 years ago

GTorlai commented 3 years ago
runcircuit(ghz(10); process = true, noise = ("DEP",(p=0.01,)))

throws the following:

SVD failed, the matrix you were trying to SVD contains NaNs.
ERROR: MethodError: no method matching iterate(::Nothing)
Closest candidates are:
  iterate(::DataStructures.TrieIterator) at /Users/gttorlai/.julia/packages/DataStructures/ixwFs/src/trie.jl:112
  iterate(::DataStructures.TrieIterator, ::Any) at /Users/gttorlai/.julia/packages/DataStructures/ixwFs/src/trie.jl:112
  iterate(::Base.EnvDict) at env.jl:119
  ...
Stacktrace:
 [1] indexed_iterate(::Nothing, ::Int64) at /Applications/Julia-1.5.app/Contents/Resources/julia/lib/julia/sys.dylib:?
 [2] MPO(::ITensor{10}, ::Array{IndexSet{4,Index{Int64},NTuple{4,Index{Int64}}},1}; leftinds::Index{Int64}, orthocenter::Int64, kwargs::Base.Iterators.Pairs{Symbol,Any,Tuple{Symbol,Symbol,Symbol},NamedTuple{(:cutoff, :maxdim, :svd_alg),Tuple{Float64,Int64,String}}}) at /Users/gttorlai/.julia/packages/ITensors/oTskW/src/mps/abstractmps.jl:1304
 [3] setindex!(::MPO, ::ITensor{10}, ::UnitRange{Int64}; orthocenter::Int64, perm::Nothing, kwargs::Base.Iterators.Pairs{Symbol,Any,Tuple{Symbol,Symbol,Symbol},NamedTuple{(:cutoff, :maxdim, :svd_alg),Tuple{Float64,Int64,String}}}) at /Users/gttorlai/.julia/packages/ITensors/oTskW/src/mps/abstractmps.jl:1242
 [4] setindex!(::MPO, ::ITensor{10}, ::UnitRange{Int64}, ::Pair{Symbol,Any}, ::Vararg{Pair{Symbol,Any},N} where N; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /Users/gttorlai/.julia/packages/ITensors/oTskW/src/mps/abstractmps.jl:1254
 [5] setindex!(::MPO, ::ITensor{10}, ::UnitRange{Int64}, ::Pair{Symbol,Any}, ::Pair{Symbol,Any}, ::Pair{Symbol,Any}) at /Users/gttorlai/.julia/packages/ITensors/oTskW/src/mps/abstractmps.jl:1254
 [6] product(::ITensor{4}, ::MPO, ::Array{Int64,1}; move_sites_back::Bool, apply_dag::Bool, kwargs::Base.Iterators.Pairs{Symbol,Any,Tuple{Symbol,Symbol,Symbol},NamedTuple{(:cutoff, :maxdim, :svd_alg),Tuple{Float64,Int64,String}}}) at /Users/gttorlai/.julia/packages/ITensors/oTskW/src/mps/abstractmps.jl:1477
 [7] product(::Array{ITensor,1}, ::MPO; move_sites_back::Bool, kwargs::Base.Iterators.Pairs{Symbol,Any,NTuple{4,Symbol},NamedTuple{(:apply_dag, :cutoff, :maxdim, :svd_alg),Tuple{Bool,Float64,Int64,String}}}) at /Users/gttorlai/.julia/packages/ITensors/oTskW/src/mps/abstractmps.jl:1572
 [8] runcircuit(::MPO, ::Array{ITensor,1}; apply_dag::Bool, cutoff::Float64, maxdim::Int64, svd_alg::String, move_sites_back::Bool, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /Users/gttorlai/.julia/dev/PastaQ/src/circuits/runcircuit.jl:237
 [9] choimatrix(::MPO, ::Array{Any,1}; noise::Tuple{String,NamedTuple{(:p,),Tuple{Float64}}}, cutoff::Float64, maxdim::Int64, svd_alg::String) at /Users/gttorlai/.julia/dev/PastaQ/src/circuits/runcircuit.jl:313
 [10] #choimatrix#85 at /Users/gttorlai/.julia/dev/PastaQ/src/circuits/runcircuit.jl:267 [inlined]
 [11] runcircuit(::Int64, ::Array{Any,1}; process::Bool, noise::Tuple{String,NamedTuple{(:p,),Tuple{Float64}}}, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /Users/gttorlai/.julia/dev/PastaQ/src/circuits/runcircuit.jl:428
 [12] runcircuit(::Array{Any,1}; kwargs::Base.Iterators.Pairs{Symbol,Any,Tuple{Symbol,Symbol},NamedTuple{(:process, :noise),Tuple{Bool,Tuple{String,NamedTuple{(:p,),Tuple{Float64}}}}}}) at /Users/gttorlai/.julia/dev/PastaQ/src/circuits/runcircuit.jl:435
 [13] top-level scope at REPL[36]:1