Skip to content

Commit 498c802

Browse files
committed
Additional tests
1 parent 93cd4db commit 498c802

File tree

2 files changed

+21
-29
lines changed

2 files changed

+21
-29
lines changed

test/algorithms.jl

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -323,17 +323,21 @@ end
323323

324324
@testset "timestep" verbose = true begin
325325
dt = 0.1
326-
algs = [TDVP(), TDVP2(; trscheme=truncdim(10))]
326+
algs = [TDVP(; verbosity=verbosity_conv),
327+
TDVP2(; trscheme=truncdim(10), verbosity=verbosity_conv)]
327328
L = 10
328329

329-
H = force_planar(heisenberg_XXX(; spin=1 // 2, L))
330-
ψ₀ = FiniteMPS(L, ℙ^2, ℙ^1)
330+
H = force_planar(heisenberg_XXX(Trivial, Float64; spin=1 // 2, L))
331+
ψ = FiniteMPS(rand, Float64, L, ℙ^2, ℙ^4)
332+
E = expectation_value(ψ, H)
333+
ψ₀, = find_groundstate(ψ, H)
331334
E₀ = expectation_value(ψ₀, H)
332335

333336
@testset "Finite $(alg isa TDVP ? "TDVP" : "TDVP2")" for alg in algs
334-
ψ, envs = timestep(ψ₀, H, 0.0, dt, alg)
335-
E = expectation_value(ψ, H, envs)
336-
@test E₀ E atol = 1e-2
337+
ψ1, envs = timestep(ψ₀, H, 0.0, dt, alg)
338+
E1 = expectation_value(ψ1, H, envs)
339+
@test E₀ E1 atol = 1e-2
340+
@test dot(ψ1, ψ₀) exp(im * dt * E₀) atol = 1e-4
337341
end
338342

339343
Hlazy = LazySum([3 * H, 1.55 * H, -0.1 * H])

test/setup.jl

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -123,33 +123,20 @@ function S_zz(::Type{Trivial}=Trivial, ::Type{T}=ComplexF64; spin=1 // 2) where
123123
return S_z(Trivial, T; spin) S_z(Trivial, T; spin)
124124
end
125125

126-
function transverse_field_ising(; g=1.0, L=Inf)
127-
X = S_x(; spin=1 // 2)
128-
ZZ = S_zz(; spin=1 // 2)
129-
E = TensorMap(ComplexF64[1 0; 0 1], ℂ^2 ^2)
126+
function transverse_field_ising(::Type{T}=ComplexF64; g=1.0, L=Inf) where {T<:Number}
127+
X = S_x(Trivial, T; spin=1 // 2)
128+
ZZ = S_zz(Trivial, T; spin=1 // 2)
130129

131-
# lattice = L == Inf ? PeriodicVector([ℂ^2]) : fill(ℂ^2, L)
132130
if L == Inf
133131
lattice = PeriodicArray([ℂ^2])
134-
return InfiniteMPOHamiltonian(lattice,
135-
(i, i + 1) => -(ZZ + (g / 2) * (X E + E X))
136-
for i in 1:1)
137-
# return MPOHamiltonian(-ZZ - (g / 2) * (X ⊗ E + E ⊗ X))
132+
H₁ = InfiniteMPOHamiltonian(lattice, i => g * X for i in 1:1)
133+
H₂ = InfiniteMPOHamiltonian(lattice, (i, i + 1) => -ZZ for i in 1:1)
138134
else
139135
lattice = fill(ℂ^2, L)
140-
return FiniteMPOHamiltonian(lattice,
141-
(i, i + 1) => -(ZZ + (g / 2) * (X E + E X))
142-
for i in 1:(L - 1)) #+
143-
# FiniteMPOHamiltonian(lattice, (i,) => -g * X for i in 1:L)
136+
H₁ = FiniteMPOHamiltonian(lattice, i => g * X for i in 1:L)
137+
H₂ = FiniteMPOHamiltonian(lattice, (i, i + 1) => -ZZ for i in 1:(L - 1))
144138
end
145-
146-
H = S_zz(; spin=1 // 2) + (g / 2) * (X E + E X)
147-
return if L == Inf
148-
MPOHamiltonian(H)
149-
else
150-
FiniteMPOHamiltonian(fill(ℂ^2, L), (i, i + 1) => H for i in 1:(L - 1))
151-
end
152-
return MPOHamiltonian(-H)
139+
return H₁ + H₂
153140
end
154141

155142
function heisenberg_XXX(::Type{SU2Irrep}; spin=1, L=Inf)
@@ -169,8 +156,9 @@ function heisenberg_XXX(::Type{SU2Irrep}; spin=1, L=Inf)
169156
end
170157
end
171158

172-
function heisenberg_XXX(; spin=1, L=Inf)
173-
h = ones(ComplexF64, SU2Space(spin => 1)^2 SU2Space(spin => 1)^2)
159+
function heisenberg_XXX(::Type{Trivial}, ::Type{T}=ComplexF64; spin=1,
160+
L=Inf) where {T<:Number}
161+
h = ones(T, SU2Space(spin => 1)^2 SU2Space(spin => 1)^2)
174162
for (c, b) in blocks(h)
175163
S = (dim(c) - 1) / 2
176164
b .= S * (S + 1) / 2 - spin * (spin + 1)

0 commit comments

Comments
 (0)