From 535ed2a8df82f517486f23f51d18df1afeed8ecf Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Tue, 16 Jun 2026 05:36:50 -0400 Subject: [PATCH] Allow AlgebraicMultigrid v2 in the AMG extension compat MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The `LinearSolveAlgebraicMultigridExt` weak-dependency compat was pinned to `AlgebraicMultigrid = "1"`, which excludes AMG v2.0. Because the rest of the modern stack (e.g. OrdinaryDiffEq v7) requires LinearSolve >= 3.60 — the versions that carry this weakdep — AMG 2.0 becomes unsatisfiable alongside it, even though AMG 2.0's own `LinearSolve` compat is `"2 - 3"`. The Julia resolver reports this as "AlgebraicMultigrid restricted by LinearSolve to 1.0.0 - 1.2.0" with no transitive explanation. The extension code is unchanged and already API-compatible with AMG 2.0: it uses `RugeStubenAMG()`, `SciMLBase.init(amg_alg, A, b)`, `solve!(solver; maxiter, reltol)`, and `solver.b`, all of which are identical in AMG 1.x and 2.0 (`AMGSolver{T}` still has a `.b::Vector{T}` field; AMG re-exports `CommonSolve.{init,solve!}`). Verified locally on Julia 1.12.6 with a current registry: - `OrdinaryDiffEq 7.0.0 + LinearSolve 3.85.x + AlgebraicMultigrid 2.0.0 + SciMLBase 3.21.0` now resolve together. - The existing `AlgebraicMultigridJL` test block in test/Core/basictests.jl passes verbatim against AMG 2.0.0 (Ruge-Stuben, SmoothedAggregation, tight-tolerance, and the rectangular-matrix AssertionError). Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.8 (1M context) --- Project.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Project.toml b/Project.toml index 4b7422b89..c6a144b32 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "LinearSolve" uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" -version = "3.85.1" +version = "3.85.2" authors = ["SciML"] [deps] @@ -108,7 +108,7 @@ LinearSolveSpecializingFactorizationsExt = "SpecializingFactorizations" [compat] AMD = "0.5" AMDGPU = "1.2, 2" -AlgebraicMultigrid = "1" +AlgebraicMultigrid = "1, 2" ArrayInterface = "7.19" BandedMatrices = "1.8" BlockDiagonals = "0.2"