From d9aa0708b77b89bf16c7d89bea6f1e2e531a6fd4 Mon Sep 17 00:00:00 2001 From: Miles Date: Wed, 12 Nov 2025 10:14:57 -0500 Subject: [PATCH 1/4] Add test of passing vectors of maxdim and cutoff values --- test/solvers/test_eigsolve.jl | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/solvers/test_eigsolve.jl b/test/solvers/test_eigsolve.jl index 0a06c541..b8f03dad 100644 --- a/test/solvers/test_eigsolve.jl +++ b/test/solvers/test_eigsolve.jl @@ -53,11 +53,22 @@ include("utilities/tree_graphs.jl") # # Test 1-site DMRG with subspace expansion + # and cutoff and maxdim as vectors of values # nsites = 1 nsweeps = 5 + factorize_kwargs = (; cutoff = [1.0e-5, 1.0e-6], maxdim = [8, 16, 32]) extract!_kwargs = (; subspace_algorithm = "densitymatrix") E, psi = dmrg(H, psi0; extract!_kwargs, factorize_kwargs, nsites, nsweeps, outputlevel) (outputlevel >= 1) && println("1-site+subspace DMRG energy = ", E) @test E ≈ Ex atol = 1.0e-5 + + # + # Test passing cutoff and maxdim as a vector of values + # + nsites = 2 + factorize_kwargs = (; cutoff = [1.0e-5, 1.0e-6], maxdim = [8, 16, 32]) + E, psi = dmrg(H, psi0; factorize_kwargs, nsites, nsweeps, outputlevel) + (outputlevel >= 1) && println("2-site DMRG energy = ", E) + @test E ≈ Ex atol = 1.0e-5 end From 6929d887889110f87d8e0367f99bfe0a0c854a96 Mon Sep 17 00:00:00 2001 From: Miles Date: Wed, 12 Nov 2025 10:15:10 -0500 Subject: [PATCH 2/4] Add back support for vector-valued cutoff and maxdim --- src/solvers/insert.jl | 3 ++- src/solvers/subspace/densitymatrix.jl | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/solvers/insert.jl b/src/solvers/insert.jl index 3896395c..5a33c030 100644 --- a/src/solvers/insert.jl +++ b/src/solvers/insert.jl @@ -12,8 +12,9 @@ function insert!(region_iter, local_tensor; normalize = false, set_orthogonal_re indsTe = inds(psi[first(region)]) tags = ITensors.tags(psi, e) + trunc_kwargs = truncation_parameters(region_iter.which_sweep; region_kwargs(factorize, region_iter)...) U, C, spectrum = factorize( - local_tensor, indsTe; tags, region_kwargs(factorize, region_iter)... + local_tensor, indsTe; tags, trunc_kwargs... ) @preserve_graph psi[first(region)] = U diff --git a/src/solvers/subspace/densitymatrix.jl b/src/solvers/subspace/densitymatrix.jl index d868cce3..ba1b39df 100644 --- a/src/solvers/subspace/densitymatrix.jl +++ b/src/solvers/subspace/densitymatrix.jl @@ -29,8 +29,9 @@ function subspace_expand!( isnothing(a) && return region_iter, local_state basis_size = prod(dim.(uniqueinds(A, C))) + trunc_kwargs = truncation_parameters(region_iter.which_sweep; eigen_kwargs...) expanded_maxdim = compute_expansion( - dim(a), basis_size; expansion_factor, maxexpand, eigen_kwargs.maxdim + dim(a), basis_size; expansion_factor, maxexpand, trunc_kwargs.maxdim ) expanded_maxdim <= 0 && return region_iter, local_state @@ -48,7 +49,7 @@ function subspace_expand!( sqrt_rho = conj_proj_A(sqrt_rho) end rho = sqrt_rho * dag(noprime(sqrt_rho)) - D, U = eigen(rho; eigen_kwargs..., ishermitian = true) + D, U = eigen(rho; trunc_kwargs..., ishermitian = true) Uproj(T) = (T - prime(A, a) * (dag(prime(A, a)) * T)) for _ in 1:north_pass From d94e56514797b7c032ec80ac152ab26096c29a83 Mon Sep 17 00:00:00 2001 From: Miles Date: Wed, 12 Nov 2025 21:12:15 -0500 Subject: [PATCH 3/4] Increase version number --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index a4808985..0a8e3193 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "ITensorNetworks" uuid = "2919e153-833c-4bdc-8836-1ea460a35fc7" authors = ["Matthew Fishman , Joseph Tindall and contributors"] -version = "0.15.0" +version = "0.15.1" [deps] AbstractTrees = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" From ee7a9247a663027e63047619fa685ec62cb8d0f9 Mon Sep 17 00:00:00 2001 From: Miles Date: Wed, 12 Nov 2025 21:14:40 -0500 Subject: [PATCH 4/4] Bump version number --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 0a8e3193..d7f49563 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "ITensorNetworks" uuid = "2919e153-833c-4bdc-8836-1ea460a35fc7" authors = ["Matthew Fishman , Joseph Tindall and contributors"] -version = "0.15.1" +version = "0.15.3" [deps] AbstractTrees = "1520ce14-60c1-5f80-bbc7-55ef81b5835c"