I am trying to move some FEM code to use the LinearSolve package. Consider the code
using LinearAlgebra, SparseArrays, LinearSolve
# Create a posdef symmetric matrix
A = sprand(100,100,0.01); A = A + A' + 100*I;
# rhs
b=rand(100);
# Set the problem
prob = LinearProblem(A,b)
sol = solve(prob)
# Check algorithm
sol.alg
# ir returns KLUFactorization(true, true)
# Check solution...OK
norm(A * sol.u .- b)
# Enforce symmetry to use Cholesky, since A is symmetric and posdef
prob2 = LinearProblem(Symmetric(A),b)
sol2 = solve(prob2)
# Gives the error
# =
ERROR: MethodError: no method matching ldiv!(::SparseArrays.CHOLMOD.Factor{Float64}, # ::Vector{Float64})
Closest candidates are:
ldiv!(::Any, ::ChainRulesCore.AbstractThunk)
@ ChainRulesCore ~/.julia/packages/ChainRulesCore/C73ay/src/tangent_types/thunks.jl:95
ldiv!(::Any, ::LinearSolve.InvPreconditioner, ::Any)
@ LinearSolve ~/.julia/packages/LinearSolve/HbBUp/src/preconditioners.jl:30
ldiv!(::Any, ::LinearSolve.ComposePreconditioner, ::Any)
@ LinearSolve ~/.julia/packages/LinearSolve/HbBUp/src/preconditioners.jl:17
...
=#
Am I doing something wrong with LinearSolve or is it a bug ?
Thank you very much,
Eduardo.