-
Notifications
You must be signed in to change notification settings - Fork 20
Expand file tree
/
Copy pathashkin_teller.jl
More file actions
34 lines (26 loc) · 862 Bytes
/
ashkin_teller.jl
File metadata and controls
34 lines (26 loc) · 862 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
using Test
using TensorKit
using MPSKit
using MPSKitModels
# Setup
gammas = [
pi / 2, pi / 3, pi / 4, pi / 6, 0,
]
# Exact GS energy density via mapping to spin 1/2 XXZ and Bethe ansatz
# https://www.sciencedirect.com/science/article/pii/0003491688900152
E0s = [
-8 / pi, -12 / 4, -4 * (sqrt(2) / pi + 1 / (2 * sqrt(2))),
-4 * (1 / pi + 11 / (12 * sqrt(3))), 2 - 8 * log(2),
]
alg = VUMPS(; maxiter = 100, verbosity = 0)
S = Z2Irrep ⊠ Z2Irrep
V = Vect[S](c => 1 for c in values(S))
W = Vect[S](c => 6 for c in values(S))
# Test
@testset "Ashkin-Teller" for (gamma, E0) in zip(gammas, E0s)
H = ashkin_teller(h = 1, J = 1, λ = cos(gamma))
Ψ = InfiniteMPS(V, W)
@test imag(expectation_value(Ψ, H)) ≈ 0 atol = 1.0e-12
Ψ0, _ = find_groundstate(Ψ, H, alg)
@test real(expectation_value(Ψ0, H)) ≈ E0 atol = 1.0e-3
end