@@ -42,26 +42,26 @@ H = heisenberg_XXX(symmetry, chain; J, spin)
4242physical_space = SU2Space (1 => 1 )
4343virtual_space = SU2Space (0 => 12 , 1 => 12 , 2 => 5 , 3 => 3 )
4444ψ₀ = FiniteMPS (L, physical_space, virtual_space)
45- ψ, envs, delta = find_groundstate (ψ₀, H, DMRG (; verbosity= 0 ))
45+ ψ, envs, delta = find_groundstate (ψ₀, H, DMRG (; verbosity = 0 ))
4646E₀ = real (expectation_value (ψ, H))
47- En_1, st_1 = excitations (H, QuasiparticleAnsatz (), ψ, envs; sector= SU2Irrep (1 ))
48- En_2, st_2 = excitations (H, QuasiparticleAnsatz (), ψ, envs; sector= SU2Irrep (2 ))
47+ En_1, st_1 = excitations (H, QuasiparticleAnsatz (), ψ, envs; sector = SU2Irrep (1 ))
48+ En_2, st_2 = excitations (H, QuasiparticleAnsatz (), ψ, envs; sector = SU2Irrep (2 ))
4949ΔE_finite = real (En_2[1 ] - En_1[1 ])
5050
5151md """
5252We can go even further and doublecheck the claim that ``S = 1`` is an edge excitation, by plotting the energy density.
5353"""
5454
55- p_density = plot (; xaxis= " position" , yaxis= " energy density" )
55+ p_density = plot (; xaxis = " position" , yaxis = " energy density" )
5656excited_1 = convert (FiniteMPS, st_1[1 ])
5757excited_2 = convert (FiniteMPS, st_2[1 ])
58- SS = - S_exchange (ComplexF64, SU2Irrep; spin= 1 )
58+ SS = - S_exchange (ComplexF64, SU2Irrep; spin = 1 )
5959e₀ = [real (expectation_value (ψ, (i, i + 1 ) => SS)) for i in 1 : (L - 1 )]
6060e₁ = [real (expectation_value (excited_1, (i, i + 1 ) => SS)) for i in 1 : (L - 1 )]
6161e₂ = [real (expectation_value (excited_2, (i, i + 1 ) => SS)) for i in 1 : (L - 1 )]
62- plot! (p_density, e₀; label= " S = 0" )
63- plot! (p_density, e₁; label= " S = 1" )
64- plot! (p_density, e₂; label= " S = 2" )
62+ plot! (p_density, e₀; label = " S = 0" )
63+ plot! (p_density, e₁; label = " S = 1" )
64+ plot! (p_density, e₂; label = " S = 2" )
6565
6666md """
6767Finally, we can obtain a value for the Haldane gap by extrapolating our results for different system sizes.
@@ -72,20 +72,20 @@ Ls = 12:4:30
7272 @info " computing L = $L "
7373 ψ₀ = FiniteMPS (L, physical_space, virtual_space)
7474 H = heisenberg_XXX (symmetry, FiniteChain (L); J, spin)
75- ψ, envs, delta = find_groundstate (ψ₀, H, DMRG (; verbosity= 0 ))
76- En_1, st_1 = excitations (H, QuasiparticleAnsatz (), ψ, envs; sector= SU2Irrep (1 ))
77- En_2, st_2 = excitations (H, QuasiparticleAnsatz (), ψ, envs; sector= SU2Irrep (2 ))
75+ ψ, envs, delta = find_groundstate (ψ₀, H, DMRG (; verbosity = 0 ))
76+ En_1, st_1 = excitations (H, QuasiparticleAnsatz (), ψ, envs; sector = SU2Irrep (1 ))
77+ En_2, st_2 = excitations (H, QuasiparticleAnsatz (), ψ, envs; sector = SU2Irrep (2 ))
7878 return real (En_2[1 ] - En_1[1 ])
7979end
8080
8181f = fit (Ls .^ (- 2 ), ΔEs, 1 )
8282ΔE_extrapolated = f. coeffs[1 ]
8383
84- # +
84+ # +
8585
86- p_size_extrapolation = plot (; xaxis= " L^(-2)" , yaxis= " ΔE" , xlims= (0 , 0.015 ))
87- plot! (p_size_extrapolation, Ls .^ (- 2 ), ΔEs; seriestype= :scatter , label= " numerical" )
88- plot! (p_size_extrapolation, x -> f (x); label= " fit" )
86+ p_size_extrapolation = plot (; xaxis = " L^(-2)" , yaxis = " ΔE" , xlims = (0 , 0.015 ))
87+ plot! (p_size_extrapolation, Ls .^ (- 2 ), ΔEs; seriestype = :scatter , label = " numerical" )
88+ plot! (p_size_extrapolation, x -> f (x); label = " fit" )
8989
9090md """
9191## Thermodynamic limit
@@ -103,14 +103,14 @@ chain = InfiniteChain(1)
103103H = heisenberg_XXX (symmetry, chain; J, spin)
104104virtual_space_inf = Rep[SU₂](1 // 2 => 16 , 3 // 2 => 16 , 5 // 2 => 8 , 7 // 2 => 4 )
105105ψ₀_inf = InfiniteMPS ([physical_space], [virtual_space_inf])
106- ψ_inf, envs_inf, delta_inf = find_groundstate (ψ₀_inf, H; verbosity= 0 )
106+ ψ_inf, envs_inf, delta_inf = find_groundstate (ψ₀_inf, H; verbosity = 0 )
107107
108108kspace = range (0 , π, 16 )
109- Es, _ = excitations (H, QuasiparticleAnsatz (), kspace, ψ_inf, envs_inf; sector= SU2Irrep (1 ))
109+ Es, _ = excitations (H, QuasiparticleAnsatz (), kspace, ψ_inf, envs_inf; sector = SU2Irrep (1 ))
110110
111111ΔE, idx = findmin (real .(Es))
112112println (" minimum @k = $(kspace[idx]) :\t ΔE = $(ΔE) " )
113113
114- # +
114+ # +
115115
116- plot (kspace, real .(Es); xaxis= " momentum" , yaxis= " ΔE" , label= " S = 1" )
116+ plot (kspace, real .(Es); xaxis = " momentum" , yaxis = " ΔE" , label = " S = 1" )
0 commit comments