diff --git a/Project.toml b/Project.toml index 6a8b89e..dce7dfc 100644 --- a/Project.toml +++ b/Project.toml @@ -10,7 +10,6 @@ ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" Graphs = "86223c79-3864-5bf0-83f7-82e725a168b6" IndexedGraphs = "8a731c18-cfb7-4915-927e-cc26b56b67cd" JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819" -KrylovKit = "0b1a1467-8014-51b9-945f-bf0ae24f4b77" Lazy = "50d2b5c4-7a5e-59d5-8109-a42b560f39c0" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" MPSKit = "bb1c41ca-d63c-52ed-829e-0820dda26502" @@ -37,10 +36,9 @@ ForwardDiff = "0.10" Graphs = "1.12.0" IndexedGraphs = "0.6.1" JLD2 = "0.5.9" -KrylovKit = "0.6" Lazy = "0.15" LinearAlgebra = "1.8" -MPSKit = "0.10" +MPSKit = "0.11.5" MatrixProductBP = "0.8" Pkg = "1.9" ProgressMeter = "1.9" diff --git a/README.md b/README.md index d5e2946..23d185e 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,6 @@ # InfiniteMatrixProductBP -Code for the article [Nonequilibrium steady-state dynamics of Markov processes on graphs](https://arxiv.org/abs/2411.19100). - -To use the package on your own stochastic dynamics, check out the syntax of [MatrixProductBP.jl](https://github.com/stecrotti/MatrixProductBP.jl) and [TensorTrains.jl](https://github.com/stecrotti/TensorTrains.jl). Code in this repo only adds functionalities to truncate infinite tensor trains and can be used to reproduce the results in the article. +Code for the article "Nonequilibrium steady-state dynamics of Markov processes on graphs" ([arXiv:2411.19100](https://arxiv.org/abs/2411.19100)). ## Installation On Julia >= 1.9, run @@ -11,9 +9,10 @@ import Pkg; Pkg.add(url="https://github.com/stecrotti/InfiniteMatrixProductBP.jl ``` ## Usage -Begin in the home directory of the package and run +To play around with the method on your own stochastic dynamics, check out the syntax of [MatrixProductBP.jl](https://github.com/stecrotti/MatrixProductBP.jl) and [TensorTrains.jl](https://github.com/stecrotti/TensorTrains.jl) where most of the source code lies. Code in this repo only adds functionalities to truncate infinite tensor trains and can be used to reproduce the results in the article. + +To reproduce results in the article, clone the repo, begin in the main directory and run ```julia -include("setup.jl") +import Pkg; Pkg.activate(".") ``` - -To reproduce results in the article, run scripts from `/scripts/`, which will save data to `/data/`. Generate plots via [/scripts/plots.ipynb](/scripts/plots.ipynb). +then run scripts from `/scripts/`, which will save data to `/data/`. Generate plots via [/scripts/plots.ipynb](/scripts/plots.ipynb). \ No newline at end of file diff --git a/setup.jl b/setup.jl deleted file mode 100644 index 0b90950..0000000 --- a/setup.jl +++ /dev/null @@ -1,10 +0,0 @@ -import Pkg -import Logging - -# activate necessary source code -Pkg.activate(@__DIR__) -Pkg.add(url="https://github.com/stecrotti/MPSKit.jl") - -# disable long VUMPS outputs -Logging.disable_logging(Logging.Info) -Logging.disable_logging(Logging.Warn) \ No newline at end of file diff --git a/src/InfiniteMatrixProductBP.jl b/src/InfiniteMatrixProductBP.jl index ecfff90..70cccb0 100644 --- a/src/InfiniteMatrixProductBP.jl +++ b/src/InfiniteMatrixProductBP.jl @@ -32,7 +32,7 @@ function truncate_vumps(A::Array{F,3}, d; ψ₀ = InfiniteMPS([t]) II = DenseMPO([add_util_leg(id(storagetype(site_type(ψ₀)), physicalspace(ψ₀, i))) for i in 1:length(ψ₀)]) - alg = VUMPS(; maxiter, kw_vumps...) # variational approximation algorithm + alg = VUMPS(; maxiter, verbosity=0, kw_vumps...) # variational approximation algorithm # alg = IDMRG1(; maxiter) @assert typeof(ψ) == typeof(ψ₀) ψ_, = approximate(ψ, (II, ψ₀), alg) # do the truncation