Skip to content

Commit 6f744d3

Browse files
committed
improve test robustness and performance
1 parent 31fab07 commit 6f744d3

File tree

1 file changed

+40
-32
lines changed

1 file changed

+40
-32
lines changed

test/algorithms.jl

Lines changed: 40 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ end
188188

189189
# test using XXZ model, Δ > 1 is gapped
190190
spin = 1
191-
local_operators = [S_xx(; spin), S_yy(; spin), 0.7 * S_zz(; spin)]
191+
local_operators = [S_xx(; spin), S_yy(; spin), 1.7 * S_zz(; spin)]
192192
Pspace = space(local_operators[1], 1)
193193
lattice = fill(Pspace, L)
194194

@@ -205,23 +205,24 @@ end
205205
@testset "DMRG" begin
206206
# test logging passes
207207
ψ, envs, δ = find_groundstate(ψ₀, H_lazy,
208-
DMRG(; tol, verbosity=5, maxiter=1))
208+
DMRG(; tol, verbosity=verbosity_full, maxiter=1))
209209

210210
# compare states
211-
alg = DMRG(; tol, verbosity=1)
212-
ψ_lazy, envs, δ = find_groundstate, H_lazy, alg)
211+
alg = DMRG(; tol, verbosity=verbosity_conv)
212+
ψ, envs, δ = find_groundstate(ψ, H_lazy, alg)
213213

214-
@test abs(dot(ψ₀, ψ_lazy)) 1 atol = atol
214+
@test abs(dot(ψ₀, ψ)) 1 atol = atol
215215
end
216216

217217
@testset "DMRG2" begin
218218
# test logging passes
219219
trscheme = truncdim(floor(Int, D * 1.5))
220220
ψ, envs, δ = find_groundstate(ψ₀, H_lazy,
221-
DMRG2(; tol, verbosity=5, maxiter=1, trscheme))
221+
DMRG2(; tol, verbosity=verbosity_full, maxiter=1,
222+
trscheme))
222223

223224
# compare states
224-
alg = DMRG2(; tol, verbosity=1, trscheme)
225+
alg = DMRG2(; tol, verbosity=verbosity_conv, trscheme)
225226
ψ, = find_groundstate(ψ₀, H, alg)
226227
ψ_lazy, envs, δ = find_groundstate(ψ₀, H_lazy, alg)
227228

@@ -231,10 +232,11 @@ end
231232
@testset "GradientGrassmann" begin
232233
# test logging passes
233234
ψ, envs, δ = find_groundstate(ψ₀, H_lazy,
234-
GradientGrassmann(; tol, verbosity=5, maxiter=2))
235+
GradientGrassmann(; tol, verbosity=verbosity_full,
236+
maxiter=2))
235237

236238
# compare states
237-
alg = GradientGrassmann(; tol, verbosity=1)
239+
alg = GradientGrassmann(; tol, verbosity=verbosity_conv)
238240
ψ, = find_groundstate(ψ₀, H, alg)
239241
ψ_lazy, envs, δ = find_groundstate(ψ₀, H_lazy, alg)
240242

@@ -249,7 +251,7 @@ end
249251

250252
# test using XXZ model, Δ > 1 is gapped
251253
spin = 1
252-
local_operators = [S_xx(; spin), S_yy(; spin), S_zz(; spin)]
254+
local_operators = [S_xx(; spin), S_yy(; spin), 1.7 * S_zz(; spin)]
253255
Pspace = space(local_operators[1], 1)
254256
lattice = PeriodicVector([Pspace])
255257
mpo_hamiltonians = map(local_operators) do O
@@ -264,24 +266,26 @@ end
264266

265267
@testset "VUMPS" begin
266268
# test logging passes
267-
ψ, envs, δ = find_groundstate(ψ₀, H_lazy, VUMPS(; tol, verbosity=5, maxiter=2))
269+
ψ, envs, δ = find_groundstate(ψ₀, H_lazy,
270+
VUMPS(; tol, verbosity=verbosity_full, maxiter=2))
268271

269272
# compare states
270-
alg = VUMPS(; tol, verbosity=2)
271-
ψ_lazy, envs, δ = find_groundstate, H_lazy, alg)
273+
alg = VUMPS(; tol, verbosity=verbosity_conv)
274+
ψ, envs, δ = find_groundstate(ψ, H_lazy, alg)
272275

273-
@test abs(dot(ψ₀, ψ_lazy)) 1 atol = atol
276+
@test abs(dot(ψ₀, ψ)) 1 atol = atol
274277
end
275278

276279
@testset "IDMRG1" begin
277280
# test logging passes
278-
ψ, envs, δ = find_groundstate(ψ₀, H_lazy, IDMRG1(; tol, verbosity=5, maxiter=2))
281+
ψ, envs, δ = find_groundstate(ψ₀, H_lazy,
282+
IDMRG1(; tol, verbosity=verbosity_full, maxiter=2))
279283

280284
# compare states
281-
alg = IDMRG1(; tol, verbosity=2)
282-
ψ_lazy, envs, δ = find_groundstate, H_lazy, alg)
285+
alg = IDMRG1(; tol, verbosity=verbosity_conv)
286+
ψ, envs, δ = find_groundstate(ψ, H_lazy, alg)
283287

284-
@test abs(dot(ψ₀, ψ_lazy)) 1 atol = atol
288+
@test abs(dot(ψ₀, ψ)) 1 atol = atol
285289
end
286290

287291
@testset "IDMRG2" begin
@@ -292,26 +296,27 @@ end
292296
trscheme = truncdim(floor(Int, D * 1.5))
293297
# test logging passes
294298
ψ, envs, δ = find_groundstate(ψ₀′, H_lazy′,
295-
IDMRG2(; tol, verbosity=5, maxiter=2, trscheme))
299+
IDMRG2(; tol, verbosity=verbosity_full, maxiter=2,
300+
trscheme))
296301

297302
# compare states
298-
alg = IDMRG2(; tol, verbosity=2, trscheme)
299-
ψ_lazy, envs, δ = find_groundstate₀′, H_lazy′, alg)
303+
alg = IDMRG2(; tol, verbosity=verbosity_conv, trscheme)
304+
ψ, envs, δ = find_groundstate(ψ, H_lazy′, alg)
300305

301-
@test abs(dot(ψ₀′, ψ_lazy)) 1 atol = atol
306+
@test abs(dot(ψ₀′, ψ)) 1 atol = atol
302307
end
303308

304309
@testset "GradientGrassmann" begin
305310
# test logging passes
306311
ψ, envs, δ = find_groundstate(ψ₀, H_lazy,
307-
GradientGrassmann(; tol, verbosity=5, maxiter=2))
312+
GradientGrassmann(; tol, verbosity=verbosity_full,
313+
maxiter=2))
308314

309315
# compare states
310-
alg = GradientGrassmann(; tol, verbosity=1)
311-
ψ_lazy, envs, δ = find_groundstate(ψ₀, H_lazy, alg)
312-
ψ, = find_groundstate(ψ₀, H, alg)
316+
alg = GradientGrassmann(; tol, verbosity=verbosity_conv)
317+
ψ, envs, δ = find_groundstate(ψ₀, H_lazy, alg)
313318

314-
@test abs(dot(ψ₀, ψ_lazy)) 1 atol = atol
319+
@test abs(dot(ψ₀, ψ)) 1 atol = atol
315320
end
316321
end
317322

@@ -408,9 +413,9 @@ end
408413

409414
@testset "leading_boundary" verbose = true begin
410415
tol = 1e-4
411-
verbosity = 0
416+
verbosity = verbosity_conv
412417
algs = [VUMPS(; tol, verbosity), VOMPS(; tol, verbosity),
413-
GradientGrassmann(; verbosity)]
418+
GradientGrassmann(; tol, verbosity)]
414419
mpo = force_planar(classical_ising())
415420

416421
ψ₀ = InfiniteMPS([ℙ^2], [ℙ^10])
@@ -428,22 +433,25 @@ end
428433
@testset "infinite (ham)" begin
429434
H = repeat(force_planar(heisenberg_XXX()), 2)
430435
ψ = InfiniteMPS([ℙ^3, ℙ^3], [ℙ^48, ℙ^48])
431-
ψ, envs, _ = find_groundstate(ψ, H; maxiter=400, verbosity=0, tol=1e-11)
436+
ψ, envs, _ = find_groundstate(ψ, H; maxiter=400, verbosity=verbosity_conv,
437+
tol=1e-10)
432438
energies, ϕs = excitations(H, QuasiparticleAnsatz(), Float64(pi), ψ, envs)
433439
@test energies[1] 0.41047925 atol = 1e-4
434440
@test variance(ϕs[1], H) < 1e-8
435441
end
436442
@testset "infinite (mpo)" begin
437443
H = repeat(sixvertex(), 2)
438444
ψ = InfiniteMPS([ℂ^2, ℂ^2], [ℂ^10, ℂ^10])
439-
ψ, envs, _ = leading_boundary(ψ, H, VUMPS(; maxiter=400, verbosity=0))
445+
ψ, envs, _ = leading_boundary(ψ, H,
446+
VUMPS(; maxiter=400, verbosity=verbosity_conv,
447+
tol=1e-10))
440448
energies, ϕs = excitations(H, QuasiparticleAnsatz(), [0.0, Float64(pi / 2)], ψ,
441449
envs; verbosity=0)
442450
@test abs(energies[1]) > abs(energies[2]) # has a minimum at pi/2
443451
end
444452

445453
@testset "finite" begin
446-
verbosity = 0
454+
verbosity = verbosity_conv
447455
H_inf = force_planar(transverse_field_ising())
448456
ψ_inf = InfiniteMPS([ℙ^2], [ℙ^10])
449457
ψ_inf, envs, _ = find_groundstate(ψ_inf, H_inf; maxiter=400, verbosity, tol=1e-9)

0 commit comments

Comments
 (0)