Skip to content

Commit fc6fac2

Browse files
Fixes to alternating_update default printing (#201)
1 parent 902ea39 commit fc6fac2

File tree

4 files changed

+42
-11
lines changed

4 files changed

+42
-11
lines changed

src/solvers/alternating_update/alternating_update.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ function alternating_update(
99
nsites, # define default for each level of solver implementation
1010
updater, # this specifies the update performed locally
1111
outputlevel=default_outputlevel(),
12-
region_printer=nothing,
13-
sweep_printer=nothing,
12+
region_printer=default_region_printer,
13+
sweep_printer=default_sweep_printer,
1414
(sweep_observer!)=nothing,
1515
(region_observer!)=nothing,
1616
root_vertex=GraphsExtensions.default_root_vertex(init_state),
@@ -59,7 +59,7 @@ function alternating_update(
5959
(sweep_observer!)=nothing,
6060
sweep_printer=default_sweep_printer,#?
6161
(region_observer!)=nothing,
62-
region_printer=nothing,
62+
region_printer=default_region_printer,
6363
)
6464
state = copy(init_state)
6565
@assert !isnothing(sweep_plans)

src/solvers/defaults.jl

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using Printf: @printf
1+
using Printf: @printf, @sprintf
22
using ITensorMPS: maxlinkdim
33
default_outputlevel() = 0
44
default_nsites() = 2
@@ -7,10 +7,12 @@ default_extracter() = default_extracter
77
default_inserter() = default_inserter
88
default_checkdone() = (; kws...) -> false
99
default_transform_operator() = nothing
10+
11+
format(x) = @sprintf("%s", x)
12+
format(x::AbstractFloat) = @sprintf("%.1E", x)
13+
1014
function default_region_printer(;
11-
cutoff,
12-
maxdim,
13-
mindim,
15+
inserter_kwargs,
1416
outputlevel,
1517
state,
1618
sweep_plan,
@@ -23,9 +25,11 @@ function default_region_printer(;
2325
region = first(sweep_plan[which_region_update])
2426
@printf("Sweep %d, region=%s \n", which_sweep, region)
2527
print(" Truncated using")
26-
@printf(" cutoff=%.1E", cutoff)
27-
@printf(" maxdim=%d", maxdim)
28-
@printf(" mindim=%d", mindim)
28+
for key in [:cutoff, :maxdim, :mindim]
29+
if haskey(inserter_kwargs, key)
30+
print(" ", key, "=", format(inserter_kwargs[key]))
31+
end
32+
end
2933
println()
3034
if spec != nothing
3135
@printf(

test/test_treetensornetworks/test_solvers/Project.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ Observers = "338f10d5-c7f1-4033-a7d1-f9dec39bcaa0"
1010
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
1111
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
1212
StableRNGs = "860ef19b-820b-49d6-a774-d7a799459cd3"
13+
Suppressor = "fd094767-a336-5f1f-9728-57cf17d0bbfb"
1314
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

test/test_treetensornetworks/test_solvers/test_dmrg.jl

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ using KrylovKit: eigsolve
2222
using NamedGraphs.NamedGraphGenerators: named_comb_tree
2323
using Observers: observer
2424
using StableRNGs: StableRNG
25+
using Suppressor: @capture_out
2526
using Test: @test, @test_broken, @testset
2627

2728
# This is needed since `eigen` is broken
@@ -76,6 +77,31 @@ ITensors.disable_auto_fermion()
7677
new_E = inner(psi', H, psi)
7778
@test new_E ≈ orig_E
7879
=#
80+
81+
#
82+
# Test outputlevels are working
83+
#
84+
prev_output = ""
85+
for outputlevel in 0:2
86+
output = @capture_out begin
87+
e, psi = dmrg(
88+
H,
89+
psi;
90+
outputlevel,
91+
nsweeps,
92+
maxdim,
93+
cutoff,
94+
nsites,
95+
updater_kwargs=(; krylovdim=3, maxiter=1),
96+
)
97+
end
98+
if outputlevel == 0
99+
@test length(output) == 0
100+
else
101+
@test length(output) > length(prev_output)
102+
end
103+
prev_output = output
104+
end
79105
end
80106

81107
@testset "Observers" begin
@@ -139,7 +165,7 @@ end
139165
nsweeps,
140166
maxdim,
141167
cutoff,
142-
outputlevel=2,
168+
outputlevel=0,
143169
transform_operator=ITensorNetworks.cache_operator_to_disk,
144170
transform_operator_kwargs=(; write_when_maxdim_exceeds=11),
145171
)

0 commit comments

Comments
 (0)