From ec9da6d79145a6de48069b63aef526f092858e86 Mon Sep 17 00:00:00 2001 From: AFeuerpfeil Date: Sat, 28 Feb 2026 09:57:02 -0500 Subject: [PATCH 1/3] dispatch environment_alg on `OperatorStyle` --- src/environments/abstract_envs.jl | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/environments/abstract_envs.jl b/src/environments/abstract_envs.jl index 14aaacf16..853c969f1 100644 --- a/src/environments/abstract_envs.jl +++ b/src/environments/abstract_envs.jl @@ -69,15 +69,22 @@ end Determine an appropriate algorithm for computing the environments, based on the given `kwargs...`. """ function environment_alg( - ::Union{InfiniteMPS, MultilineMPS}, ::Union{InfiniteMPO, MultilineMPO}, - ::Union{InfiniteMPS, MultilineMPS}; + below::AbstractMPS, operator, above::AbstractMPS; kwargs... + ) + return environment_alg( + GeometryStyle(below, operator, above), OperatorStyle(operator), + below, operator, above; kwargs... + ) +end +function environment_alg( + ::InfiniteChainStyle, ::MPOStyle, below, operator, above; tol = Defaults.tol, maxiter = Defaults.maxiter, krylovdim = Defaults.krylovdim, - verbosity = Defaults.VERBOSE_NONE, eager = true + verbosity = Defaults.VERBOSE_NONE, eager = true, ) return Arnoldi(; tol, maxiter, krylovdim, verbosity, eager) end function environment_alg( - below, ::InfiniteMPOHamiltonian, above; + ::InfiniteChainStyle, ::HamiltonianStyle, below, operator, above; tol = Defaults.tol, maxiter = Defaults.maxiter, krylovdim = Defaults.krylovdim, verbosity = Defaults.VERBOSE_NONE ) @@ -85,6 +92,7 @@ function environment_alg( return GMRES(; tol, maxiter, krylovdim = min(max_krylovdim, krylovdim), verbosity) end function environment_alg( + ::InfiniteChainStyle, ::MPOStyle, ::Union{InfiniteQP, MultilineQP}, ::Union{InfiniteMPO, MultilineMPO}, ::Union{InfiniteQP, MultilineQP}; tol = Defaults.tol, maxiter = Defaults.maxiter, krylovdim = Defaults.krylovdim, From dd08d629706cb005bb69b1f7b4549aeb1cdf3d08 Mon Sep 17 00:00:00 2001 From: AFeuerpfeil Date: Sat, 28 Feb 2026 10:05:34 -0500 Subject: [PATCH 2/3] format --- src/environments/abstract_envs.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/environments/abstract_envs.jl b/src/environments/abstract_envs.jl index 853c969f1..788109e0a 100644 --- a/src/environments/abstract_envs.jl +++ b/src/environments/abstract_envs.jl @@ -72,19 +72,19 @@ function environment_alg( below::AbstractMPS, operator, above::AbstractMPS; kwargs... ) return environment_alg( - GeometryStyle(below, operator, above), OperatorStyle(operator), + GeometryStyle(below, operator, above), OperatorStyle(operator), below, operator, above; kwargs... ) end function environment_alg( - ::InfiniteChainStyle, ::MPOStyle, below, operator, above; + ::InfiniteChainStyle, ::MPOStyle, below, operator, above; tol = Defaults.tol, maxiter = Defaults.maxiter, krylovdim = Defaults.krylovdim, verbosity = Defaults.VERBOSE_NONE, eager = true, ) return Arnoldi(; tol, maxiter, krylovdim, verbosity, eager) end function environment_alg( - ::InfiniteChainStyle, ::HamiltonianStyle, below, operator, above; + ::InfiniteChainStyle, ::HamiltonianStyle, below, operator, above; tol = Defaults.tol, maxiter = Defaults.maxiter, krylovdim = Defaults.krylovdim, verbosity = Defaults.VERBOSE_NONE ) From 2faa4d14091e1cdc198d277ff900f2d2a5b2a6bd Mon Sep 17 00:00:00 2001 From: AFeuerpfeil Date: Mon, 2 Mar 2026 10:51:12 -0500 Subject: [PATCH 3/3] fix MethodError for quasi particles --- src/environments/abstract_envs.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/environments/abstract_envs.jl b/src/environments/abstract_envs.jl index 788109e0a..0bcf298db 100644 --- a/src/environments/abstract_envs.jl +++ b/src/environments/abstract_envs.jl @@ -69,7 +69,7 @@ end Determine an appropriate algorithm for computing the environments, based on the given `kwargs...`. """ function environment_alg( - below::AbstractMPS, operator, above::AbstractMPS; kwargs... + below, operator, above; kwargs... ) return environment_alg( GeometryStyle(below, operator, above), OperatorStyle(operator),