@@ -260,18 +260,35 @@ end
260260Base. length (H:: EffectiveExcitationHamiltonian ) = length (H. operator)
261261
262262function (H:: EffectiveExcitationHamiltonian )(ϕ:: QP ; kwargs... )
263- ϕ′ = similar (ϕ)
264263 qp_envs = environments (ϕ, H. operator, H. lenvs, H. renvs; kwargs... )
264+ return effective_excitation_hamiltonian (H. operator, ϕ, qp_envs, H. energy)
265+ end
266+ function (H:: Multiline{<:EffectiveExcitationHamiltonian} )(ϕ:: MultilineQP ; kwargs... )
267+ return Multiline (map ((x, y) -> x (y; kwargs... ), parent (H), parent (ϕ)))
268+ end
269+
270+ function effective_excitation_hamiltonian (H, ϕ, envs= environments (ϕ, H))
271+ E₀ = effective_excitation_renormalization_energy (H, ϕ, envs. leftenvs, envs. rightenvs)
272+ return effective_excitation_hamiltonian (H, ϕ, envs, E₀)
273+ end
274+ function effective_excitation_hamiltonian (H, ϕ, qp_envs, E)
275+ ϕ′ = similar (ϕ)
265276 tforeach (1 : length (ϕ); scheduler= Defaults. scheduler[]) do loc
266- ϕ′[loc] = _effective_excitation_local_apply (loc, ϕ, H. operator,
267- H. energy[loc], qp_envs)
277+ ϕ′[loc] = _effective_excitation_local_apply (loc, ϕ, H, E[loc], qp_envs)
268278 return nothing
269279 end
270280 return ϕ′
271281end
272282
273- function (H:: Multiline{<:EffectiveExcitationHamiltonian} )(ϕ:: MultilineQP ; kwargs... )
274- return Multiline (map ((x, y) -> x (y; kwargs... ), parent (H), parent (ϕ)))
283+ function effective_excitation_hamiltonian (H:: MultilineMPO , ϕ:: MultilineQP ,
284+ envs= environments (ϕ, H))
285+ E₀ = map (effective_excitation_renormalization_energy, parent (H), parent (ϕ),
286+ parent (envs). leftenvs, parent (envs). rightenvs)
287+ return effective_excitation_hamiltonian (H, ϕ, envs, E₀)
288+ end
289+ function effective_excitation_hamiltonian (H:: MultilineMPO , ϕ:: MultilineQP , envs, E)
290+ return Multiline (map (effective_excitation_hamiltonian,
291+ parent (H), parent (ϕ), parent (envs), E))
275292end
276293
277294function _effective_excitation_local_apply (site, ϕ, H:: MPOHamiltonian , E:: Number , envs)
0 commit comments