BoundaryValueDiffEq.jl icon indicating copy to clipboard operation
BoundaryValueDiffEq.jl copied to clipboard

BigFloat support for TwoPointBVProblem using MIRK4

Open seadra opened this issue 5 years ago • 6 comments

Using BigFloat with a TwoPointBVProblem and MIRK4 solver currently fails with the following error:

ArgumentError: matrix type SparseArrays.SparseMatrixCSC{BigFloat,Int64}not supported. Try lu(convert(SparseMatrixCSC{Float64/ComplexF64,Int}, A)) for sparse floating point LU using UMFPACK or lu(Array(A)) for generic dense LU.

seadra avatar May 11 '19 04:05 seadra

We probably just need to add a dependency on GenericSVD.jl

ChrisRackauckas avatar May 11 '19 09:05 ChrisRackauckas

I naively tried using GenericSVD in my code but it didn't work, so I'm guessing that means something else :)

seadra avatar May 16 '19 20:05 seadra

I thought BigFloat would just work, but seems like the problem is more fundamental

julia> similar(rand(BigFloat, 2, 3))
2×3 Matrix{BigFloat}:
 #undef  #undef  #undef
 #undef  #undef  #undef

This makes all of the internal NonlinearSolve machinery fail because it often performs concatenation and such on a similared array before assigning values to it.

avik-pal avatar Mar 24 '24 16:03 avik-pal

For safety, just zero?

ChrisRackauckas avatar Apr 25 '24 11:04 ChrisRackauckas

yes probably that's the way to go, it just needs to be added at quite a few places in NonlinearSolve

avik-pal avatar Apr 25 '24 13:04 avik-pal

NonlinearSolve now supports bigfloats natively. Need to add a test for this here.

avik-pal avatar May 26 '24 03:05 avik-pal