@@ -348,46 +348,16 @@ function effective_excitation_renormalization_energy(H::Union{InfiniteMPO,
348348 lenvs,
349349 renvs)
350350 ψ_left = ϕ. left_gs
351- E_left = map (1 : length (ϕ)) do site
352- return contract_mpo_expval (ψ_left. AC[site], leftenv (lenvs, site, ψ_left),
353- H[site], rightenv (lenvs, site, ψ_left))
354- end
355-
356- ϕ. trivial && return E_left
357-
358351 ψ_right = ϕ. right_gs
359- E_right = map (1 : length (ϕ)) do site
360- return contract_mpo_expval (ψ_right. AC[site], leftenv (renvs, site, ψ_right),
361- H[site], rightenv (renvs, site, ψ_right))
362- end
363-
364- return (E_left .+ E_right) ./ 2
365- end
366-
367- function effective_excitation_renormalization_energy (H, ϕ, lenvs, renvs)
368- E_left = map (1 : length (ϕ)) do loc
369- AC = ϕ. left_gs. AC[loc]
370- GL = leftenv (lenvs, loc, ϕ. left_gs)
371- GR = rightenv (lenvs, loc, ϕ. left_gs)
372- return sum (keys (H[loc]); init= zero (scalartype (ϕ))) do (j, k)
373- return @plansor conj (AC[2 6 ; 4 ]) * GL[j][2 5 ; 3 ] * AC[3 7 ; 1 ] *
374- H[loc][j, k][5 6 ; 7 8 ] *
375- GR[k][1 8 ; 4 ]
376- end
377- end
378-
379- ϕ. trivial && return E_left
380-
381- E_right = map (1 : length (ϕ)) do loc
382- AC = ϕ. right_gs. AC[loc]
383- GL = leftenv (renvs, loc, ϕ. right_gs)
384- GR = rightenv (renvs, loc, ϕ. right_gs)
385- return sum (keys (H[loc]); init= zero (scalartype (ϕ))) do (j, k)
386- return @plansor conj (AC[2 6 ; 4 ]) * GL[j][2 5 ; 3 ] * AC[3 7 ; 1 ] *
387- H[loc][j, k][5 6 ; 7 8 ] *
388- GR[k][1 8 ; 4 ]
352+ E = Vector {scalartype(ϕ)} (undef, length (ϕ))
353+ for i in eachindex (E)
354+ E[i] = contract_mpo_expval (ψ_left. AC[i], leftenv (lenvs, i, ψ_left),
355+ H[i], rightenv (lenvs, i, ψ_left))
356+ if ! ϕ. trivial
357+ E[i] += contract_mpo_expval (ψ_right. AC[i], leftenv (renvs, i, ψ_right),
358+ H[i], rightenv (renvs, i, ψ_right))
359+ E[i] /= 2
389360 end
390361 end
391-
392- return (E_left .+ E_right) ./ 2
362+ return E
393363end
0 commit comments