Skip to content

How to set UMFPACK control vector ? #383

Open
@sjdaines

Description

@sjdaines

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions