Open
Description
Apologies if I've missed something, but I can't see how to set the UMFPACK control vector...
Would this be possible perhaps as a new control
kwarg to UMFPACKFactorization
?
which could then be used eg to reenable iterative refinement:
import SparseArrays
umfpack_control = SparseArrays.UMFPACK.get_umfpack_control(Float64, Int64) # get Julia defaults (NB: Julia modifies the UMFPACK default to switch off iterative refinement)
umfpack_control[SparseArrays.UMFPACK.JL_UMFPACK_IRSTEP] = 2.0 # reenable UMFPACK default max iterative refinement steps
UMFPACKFactorization(;reuse_symbolic=true, check_pattern=true, control=umfpack_control)
where this could perhaps be implemented as
Base.@kwdef struct UMFPACKFactorization <: AbstractFactorization
reuse_symbolic::Bool = true
check_pattern::Bool = true # Check factorization re-use
control::Vector{Float64} = Float64[] # empty vector will be filled in with defaults from a call to SparseArrays.UMFPACK.get_umfpack_control
end