@@ -46,6 +46,15 @@ function defaultalg(A, b::GPUArraysCore.AbstractGPUArray, ::OperatorAssumptions{
4646 end
4747end
4848
49+ function defaultalg (A:: SciMLBase.AbstractDiffEqOperator , b, assumptions:: OperatorAssumptions )
50+ KrylovJL_GMRES ()
51+ end
52+
53+ # Ambiguity handling
54+ function defaultalg (A:: SciMLBase.AbstractDiffEqOperator , b, assumptions:: OperatorAssumptions{nothing} )
55+ KrylovJL_GMRES ()
56+ end
57+
4958# Handle ambiguity
5059function defaultalg (A:: GPUArraysCore.AbstractGPUArray , b:: GPUArraysCore.AbstractGPUArray ,
5160 :: OperatorAssumptions{true} )
@@ -70,6 +79,8 @@ function defaultalg(A::GPUArraysCore.AbstractGPUArray, b::GPUArraysCore.Abstract
7079 QRFactorization ()
7180end
7281
82+
83+
7384# Allows A === nothing as a stand-in for dense matrix
7485function defaultalg (A, b, :: OperatorAssumptions{true} )
7586 # Special case on Arrays: avoid BLAS for RecursiveFactorization.jl when
119130
120131function init_cacheval (alg:: Nothing , A, b, u, Pl, Pr, maxiters:: Int , abstol, reltol,
121132 verbose:: Bool , assumptions:: OperatorAssumptions )
122- init_cacheval (default_alg (A, b), A, b, u, Pl, Pr, maxiters, abstol, reltol, verbose,
133+ init_cacheval (default_alg (A, b, assumptions ), A, b, u, Pl, Pr, maxiters, abstol, reltol, verbose,
123134 assumptions)
124135end
0 commit comments