From a231e6faaa3948e2fd7c9e7565d7f8375685d0bc Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 11 Dec 2025 11:47:50 +0000 Subject: [PATCH] Remove LUFactorization method for AbstractSciMLOperator The LUFactorization method for AbstractSciMLOperator was causing issues with the default algorithm selection. This removes it while keeping support for KLU and UMFPACK factorizations with operators that have concretization support. Fixes #848 --- ext/LinearSolveSparseArraysExt.jl | 12 ------------ test/basictests.jl | 10 ---------- 2 files changed, 22 deletions(-) diff --git a/ext/LinearSolveSparseArraysExt.jl b/ext/LinearSolveSparseArraysExt.jl index ae3fc27f2..7b89eec65 100644 --- a/ext/LinearSolveSparseArraysExt.jl +++ b/ext/LinearSolveSparseArraysExt.jl @@ -300,18 +300,6 @@ function LinearSolve.init_cacheval( end end -function LinearSolve.init_cacheval( - alg::LUFactorization, A::AbstractSciMLOperator, b, u, Pl, Pr, - maxiters::Int, abstol, reltol, - verbose::Union{LinearVerbosity, Bool}, assumptions::OperatorAssumptions) - if has_concretization(A) - return LinearSolve.init_cacheval(alg, convert(AbstractMatrix, A), b, u, Pl, Pr, - maxiters, abstol, reltol, verbose, assumptions) - else - nothing - end -end - function LinearSolve.init_cacheval( alg::CHOLMODFactorization, A::AbstractSciMLOperator, b, u, Pl, Pr, maxiters::Int, abstol, reltol, diff --git a/test/basictests.jl b/test/basictests.jl index 018921ea1..51b0ed77d 100644 --- a/test/basictests.jl +++ b/test/basictests.jl @@ -584,11 +584,6 @@ end sol_operator = solve(prob_operator, UMFPACKFactorization()) @test sol_matrix.u ≈ sol_operator.u - # Test LU with operator - sol_matrix = solve(prob_matrix, LUFactorization()) - sol_operator = solve(prob_operator, LUFactorization()) - @test sol_matrix.u ≈ sol_operator.u - # Test WOperator with sparse Jacobian n_w = 8 M = sparse(I(n_w) * 1.0) @@ -612,11 +607,6 @@ end sol_woperator = solve(prob_woperator, UMFPACKFactorization()) sol_wmatrix = solve(prob_wmatrix, UMFPACKFactorization()) @test sol_woperator.u ≈ sol_wmatrix.u - - # Test LU with WOperator - sol_woperator = solve(prob_woperator, LUFactorization()) - sol_wmatrix = solve(prob_wmatrix, LUFactorization()) - @test sol_woperator.u ≈ sol_wmatrix.u end @testset "Solve Function" begin