Jutho / cMPS-notebook

Notebook for illustrating the use of CMPSKit.jl and to reproduce the results from arXiv:2006.01801.
12 stars 1 forks source link

No method matching problem #1

Open jmont40 opened 2 weeks ago

jmont40 commented 2 weeks ago

Hi Jutho,

I am trying to run the notebook and everything works great until the 17th cell where the optimization is implemented for the first time. Upon running it I get an error that I don't know how to fix. The error is as follows: "MethodError: no method matching map_antilinear(::typeof(adjoint), ::PiecewiseLinear{Matrix{Float64}, Vector{Float64}})\n\nClosest candidates are:\n map_antilinear(::Any, !Matched::CMPSKit.Piecewise; kwargs...)\n
@ CMPSKit C:\Users\User\.julia\packages\CMPSKit\xGxug\src\functionspaces\piecewise.jl:180\n map_antilinear(::Any, !Matched::TaylorSeries)\n
@ CMPSKit C:\Users\User\.julia\packages\CMPSKit\xGxug\src\functionspaces\taylorseries.jl:338\n map_antilinear(::Any, !Matched::FourierSeries; kwargs...)\n @ CMPSKit C:\Users\User\.julia\packages\CMPSKit\xGxug\src\functionspaces\fourierseries.jl:314\n ...\n",

With the corresponding stack: "MethodError: no method matching map_antilinear(::typeof(adjoint), ::PiecewiseLinear{Matrix{Float64}, Vector{Float64}})\n\nClosest candidates are:\n map_antilinear(::Any, !Matched::CMPSKit.Piecewise; kwargs...)\n
@ CMPSKit C:\Users\User\.julia\packages\CMPSKit\xGxug\src\functionspaces\piecewise.jl:180\n map_antilinear(::Any, !Matched::TaylorSeries)\n
@ CMPSKit C:\Users\User\.julia\packages\CMPSKit\xGxug\src\functionspaces\taylorseries.jl:338\n map_antilinear(::Any, !Matched::FourierSeries; kwargs...)\n
@ CMPSKit C:\Users\User\.julia\packages\CMPSKit\xGxug\src\functionspaces\fourierseries.jl:314\n ...\n\n\nStacktrace:\n [1] adjoint(f::PiecewiseLinear{Matrix{Float64}, Vector{Float64}})\n
@ CMPSKit C:\Users\User\.julia\packages\CMPSKit\xGxug\src\functionspaces\generic.jl:55\n [2] _leftreducedoperator(op::CMPSKit.NormalOrderedTerm{CMPSKit.Annihilation{1}, CMPSKit.Annihilation{1}}, Q::PiecewiseLinear{Matrix{Float64}, Vector{Float64}}, Rs::Tuple{PiecewiseLinear{Matrix{Float64}, Vector{Float64}}}, ρL::CMPSKit.Piecewise{Matrix{Float64}, TaylorSeries{Matrix{Float64}, Float64}, Vector{Float64}})\n
@ CMPSKit C:\Users\User\.julia\packages\CMPSKit\xGxug\src\abstractcmps.jl:29\n [3] leftreducedoperator(op::CMPSKit.NormalOrderedTerm{CMPSKit.Annihilation{1}, CMPSKit.Annihilation{1}}, Ψ::FiniteCMPS{PiecewiseLinear{Matrix{Float64}, Vector{Float64}}, 1, Vector{Float64}}, ρL::CMPSKit.Piecewise{Matrix{Float64}, TaylorSeries{Matrix{Float64}, Float64}, Vector{Float64}}; kwargs::@Kwargs{})\n
@ CMPSKit C:\Users\User\.julia\packages\CMPSKit\xGxug\src\abstractcmps.jl:18\n [4] leftreducedoperator(op::CMPSKit.NormalOrderedTerm{CMPSKit.Annihilation{1}, CMPSKit.Annihilation{1}}, Ψ::FiniteCMPS{PiecewiseLinear{Matrix{Float64}, Vector{Float64}}, 1, Vector{Float64}}, ρL::CMPSKit.Piecewise{Matrix{Float64}, TaylorSeries{Matrix{Float64}, Float64}, Vector{Float64}})\n
@ CMPSKit C:\Users\User\.julia\packages\CMPSKit\xGxug\src\abstractcmps.jl:14\n [5] leftreducedoperator(ops::CMPSKit.SumOfLocalTerms{3, Tuple{Int64, Float64, Float64}, Tuple{CMPSKit.NormalOrderedTerm{CMPSKit.DifferentiatedAnnihilation{1}, CMPSKit.DifferentiatedAnnihilation{1}}, CMPSKit.NormalOrderedTerm{CMPSKit.Pairing{1, 1}, CMPSKit.Pairing{1, 1}}, CMPSKit.NormalOrderedTerm{CMPSKit.Annihilation{1}, CMPSKit.Annihilation{1}}}}, Ψ::FiniteCMPS{PiecewiseLinear{Matrix{Float64}, Vector{Float64}}, 1, Vector{Float64}}, ρL::CMPSKit.Piecewise{Matrix{Float64}, TaylorSeries{Matrix{Float64}, Float64}, Vector{Float64}}; kwargs::@Kwargs{})\n
@ CMPSKit C:\Users\User\.julia\packages\CMPSKit\xGxug\src\abstractcmps.jl:49\n [6] leftreducedoperator\n
@ C:\Users\User\.julia\packages\CMPSKit\xGxug\src\abstractcmps.jl:42 [inlined]\n [7] leftenv(H::CMPSKit.LocalHamiltonian{CMPSKit.SumOfLocalTerms{3, Tuple{Int64, Float64, Float64}, Tuple{CMPSKit.NormalOrderedTerm{CMPSKit.DifferentiatedAnnihilation{1}, CMPSKit.DifferentiatedAnnihilation{1}}, CMPSKit.NormalOrderedTerm{CMPSKit.Pairing{1, 1}, CMPSKit.Pairing{1, 1}}, CMPSKit.NormalOrderedTerm{CMPSKit.Annihilation{1}, CMPSKit.Annihilation{1}}}}, Int64}, Ψρs::Tuple{FiniteCMPS{PiecewiseLinear{Matrix{Float64}, Vector{Float64}}, 1, Vector{Float64}}, CMPSKit.Piecewise{Matrix{Float64}, TaylorSeries{Matrix{Float64}, Float64}, Vector{Float64}}, CMPSKit.Piecewise{Matrix{Float64}, TaylorSeries{Matrix{Float64}, Float64}, Vector{Float64}}}; Kmax::Int64, tol::Float64)\n
@ CMPSKit C:\Users\User\.julia\packages\CMPSKit\xGxug\src\finitecmps\environments.jl:98\n [8] leftenv\n
@ C:\Users\User\.julia\packages\CMPSKit\xGxug\src\finitecmps\environments.jl:93 [inlined]\n [9] environments(H::CMPSKit.LocalHamiltonian{CMPSKit.SumOfLocalTerms{3, Tuple{Int64, Float64, Float64}, Tuple{CMPSKit.NormalOrderedTerm{CMPSKit.DifferentiatedAnnihilation{1}, CMPSKit.DifferentiatedAnnihilation{1}}, CMPSKit.NormalOrderedTerm{CMPSKit.Pairing{1, 1}, CMPSKit.Pairing{1, 1}}, CMPSKit.NormalOrderedTerm{CMPSKit.Annihilation{1}, CMPSKit.Annihilation{1}}}}, Int64}, Ψρs::Tuple{FiniteCMPS{PiecewiseLinear{Matrix{Float64}, Vector{Float64}}, 1, Vector{Float64}}, CMPSKit.Piecewise{Matrix{Float64}, TaylorSeries{Matrix{Float64}, Float64}, Vector{Float64}}, CMPSKit.Piecewise{Matrix{Float64}, TaylorSeries{Matrix{Float64}, Float64}, Vector{Float64}}}; kwargs::@Kwargs{Kmax::Int64, tol::Float64})\n
@ CMPSKit C:\Users\User\.julia\packages\CMPSKit\xGxug\src\finitecmps\environments.jl:124\n [10] environments\n @ C:\Users\User\.julia\packages\CMPSKit\xGxug\src\finitecmps\environments.jl:123 [inlined]\n [11] #environments!#159\n @ C:\Users\User\.julia\packages\CMPSKit\xGxug\src\finitecmps\environments.jl:119 [inlined]\n [12] environments!\n
@ C:\Users\User\.julia\packages\CMPSKit\xGxug\src\finitecmps\environments.jl:117 [inlined]\n [13] groundstate(H::CMPSKit.LocalHamiltonian{CMPSKit.SumOfLocalTerms{3, Tuple{Int64, Float64, Float64}, Tuple{CMPSKit.NormalOrderedTerm{CMPSKit.DifferentiatedAnnihilation{1}, CMPSKit.DifferentiatedAnnihilation{1}}, CMPSKit.NormalOrderedTerm{CMPSKit.Pairing{1, 1}, CMPSKit.Pairing{1, 1}}, CMPSKit.NormalOrderedTerm{CMPSKit.Annihilation{1}, CMPSKit.Annihilation{1}}}}, Int64}, Ψ₀::FiniteCMPS{PiecewiseLinear{Matrix{Float64}, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}}, 1, Vector{Float64}}; optalg::LBFGS{Float64, OptimKit.HagerZhangLineSearch{Rational{Int64}}}, boundaries::Symbol, left_boundary::Symbol, right_boundary::Symbol, optimnodes::StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, Kmax::Int64, tol::Float64, callback::var\"#callback#46\"{Float64, Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}, Int64})\n
@ CMPSKit C:\Users\User\.julia\packages\CMPSKit\xGxug\src\finitecmps\groundstate.jl:100\n [14] top-level scope\n @ c:\Users\User\Documents\Physics\Research\Tensor Networks\cMPS\jl_notebook_cell_df34fa98e69747e1a8f8a730347b8e2f_X54sZmlsZQ==.jl:1"

Sorry for the long message, but I'm very interested in learning the architecture you've setup in the package, I just don't know whats causing this error. Any help is appreciated, thanks!

Best, Jake

Jutho commented 1 week ago

Hi Jake;

because cMPSKit was (and still is) not registered, I could not add a version specifier to the project file of this notebook. It is best to check out CMPSKit.jl at around the date of this notebook, e.g. this commit: https://github.com/Jutho/CMPSKit.jl/tree/da3a68d08a8b6aa091324ca5b9447585a9eb9a34

I started making changes afterwards which might have been breaking for this notebook. Unfortunately, I stopped having time for this at some point two years ago, and did not return to continue working on cMPSKit.jl since then (unfortunately).

jmont40 commented 1 week ago

Thanks! Its a shame there's not more use of these CMPS, I would think they'd be a good tool for studying continuum models with TN's.