From a12297c84288301c8e1b0048e81d6c3f8b5cb36a Mon Sep 17 00:00:00 2001 From: Paolo Date: Sat, 16 Mar 2024 23:29:42 +0100 Subject: [PATCH] added the changes on the documentation, added the modification suggested --- src/factorization.jl | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/factorization.jl b/src/factorization.jl index 1b3e7a32a..a46f19884 100644 --- a/src/factorization.jl +++ b/src/factorization.jl @@ -723,8 +723,14 @@ end ################################## Factorizations which require solve! overloads +# Default control array of 20 elements from Umfpack + +#!!!ATTENTION +#These array could change and whenever there will be a change in the SparseArrays package this array must be changed +const default_control=[1.0, 0.2, 0.2, 0.1, 32.0, 0.0, 0.7, 0.0, 1.0, 0.3, 1.0, 1.0, 0.9, 0.0, 10.0, 0.001, 1.0, 0.5, 0.0, 1.0] + """ -`UMFPACKFactorization(;reuse_symbolic=true, check_pattern=true)` +`UMFPACKFactorization(;reuse_symbolic=true, check_pattern=true, control=Vector{Float64}(20))` A fast sparse multithreaded LU-factorization which specializes on sparsity patterns with “more structure”. @@ -735,10 +741,14 @@ patterns with “more structure”. symbolic factorization. I.e., if `set_A` is used, it is expected that the new `A` has the same sparsity pattern as the previous `A`. If this algorithm is to be used in a context where that assumption does not hold, set `reuse_symbolic=false`. + + There is also the possibility to set your own control array for the factorization that will be + passed at the SparseArrays package. To do so u have to pass a Vector{Float64} with 20 elements. + If no vecetor is passed the default control array is used. + More details on the UMFPACK doc """ -const default_control=[1.0, 0.2, 0.2, 0.1, 32.0, 0.0, 0.7, 0.0, 1.0, 0.3, 1.0, 1.0, 0.9, 0.0, 10.0, 0.001, 1.0, 0.5, 0.0, 1.0] -Base.@kwdef struct UMFPACKFactorization{T <: Union{Nothing, Vector{Float64}} <: AbstractFactorization +Base.@kwdef struct UMFPACKFactorization{T <: Union{Nothing, Vector{Float64}}} <: AbstractFactorization reuse_symbolic::Bool = true check_pattern::Bool = true # Check factorization re-use control::T=nothing