11using Test: @test , @testset
2+ using TensorKit
23using TensorKit: ← , ⊗ , SU2Irrep, Vect, permute, truncdim, truncbelow
34using MPSKit: correlation_length, leading_boundary
45using PEPSKit: CTMRGEnv, InfinitePEPS
@@ -8,15 +9,15 @@ using PEPSKit: CTMRGEnv, InfinitePEPS
89 vD = Vect[SU2Irrep](1 // 2 => 1 )
910 vd = Vect[SU2Irrep](2 => 1 )
1011 tAKLT_A = ones (vd ← vD ⊗ vD ⊗ vD ⊗ vD)
11- tAKLT_B = permute (adjoint (tAKLT_A), (5 ,), (1 , 2 , 3 , 4 ))
12+ tAKLT_B = permute (adjoint (tAKLT_A), (( 5 ,), (1 , 2 , 3 , 4 ) ))
1213
1314 ψ = InfinitePEPS ([tAKLT_A tAKLT_B; tAKLT_B tAKLT_A])
14- trscheme = truncdim ( 20 ) & truncbelow ( 1e-12 )
15- boundary_alg = (; tol= 1e-10 , trscheme= trscheme, maxiter= 1 , verbosity= 0 )
15+ trscheme = truncbelow ( 1e-12 ) & truncdim ( 48 )
16+ boundary_alg = (; tol= 1e-10 , trscheme= trscheme, maxiter= 400 , verbosity= 3 )
1617 env0 = CTMRGEnv (randn, Float64, ψ, oneunit (vD))
1718 env, info_ctmrg = leading_boundary (env0, ψ; boundary_alg... )
1819
19- ξ_h, ξ_v, λ_h, λ_v = correlation_length (ψ, env)
20+ ξ_h, ξ_v, λ_h, λ_v = correlation_length (ψ, env; sector = SU2Irrep ( 1 ) )
2021 @test ξ_h isa Vector{Float64}
2122 @test size (ξ_h) == (2 ,)
2223 @test all (isfinite .(ξ_h))
@@ -26,4 +27,9 @@ using PEPSKit: CTMRGEnv, InfinitePEPS
2627 @test size (ξ_v) == (2 ,)
2728 @test all (isfinite .(ξ_v))
2829 @test all (ξ_v .> 0 )
30+
31+ # AKLT state should have correlation length ~ 2sites
32+ # https://journals.aps.org/prb/abstract/10.1103/PhysRevB.96.121115
33+ @test all (x -> isapprox (x * size (ψ, 2 ), 2 ; atol= 0.1 ), ξ_h)
34+ @test all (x -> isapprox (x * size (ψ, 1 ), 2 ; atol= 0.1 ), ξ_v)
2935end
0 commit comments