33
44import Pardiso
55
6- export PardisoJL
6+ export PardisoJL, PardisoJLFactorize, PardisoJLIterate
77
88Base. @kwdef struct PardisoJL <: SciMLLinearSolveAlgorithm
99 nprocs:: Union{Int, Nothing} = nothing
@@ -15,6 +15,11 @@ Base.@kwdef struct PardisoJL <: SciMLLinearSolveAlgorithm
1515 dparm:: Union{Vector{Tuple{Int,Int}}, Nothing} = nothing
1616end
1717
18+ PardisoJLFactorize (;kwargs... ) = PardisoJL (;solver_type= 0 , kwargs... )
19+ PardisoJLIterate (;kwargs... ) = PardisoJL (;solver_type= 1 , kwargs... )
20+
21+ # TODO schur complement functionality
22+
1823function init_cacheval (alg:: PardisoJL , cache:: LinearCache )
1924 @unpack nprocs, solver_type, matrix_type, iparm, dparm = alg
2025
@@ -62,7 +67,7 @@ function SciMLBase.solve(cache::LinearCache, alg::PardisoJL; kwargs...)
6267 can we use phase to store factorization in cache?
6368 """
6469 alg. solve_phase != = nothing && Pardiso. set_phase! (cacheval, alg. solve_phase)
65- Pardiso. solve! (cache. cacheval, u, A, b)
70+ Pardiso. pardiso (cache. cacheval, u, A, b)
6671 alg. release_phase != = nothing && Pardiso. set_phase! (cacheval, alg. release_phase) # is this necessary?
6772
6873 return cache. u
0 commit comments