@@ -26,22 +26,24 @@ function LinearSolve.init_cacheval(alg::PardisoJL,
26
26
A = convert (AbstractMatrix, A)
27
27
28
28
transposed_iparm = 1
29
- solver = if false && Pardiso. PARDISO_LOADED[]
29
+ solver = if Pardiso. PARDISO_LOADED[]
30
30
solver = Pardiso. PardisoSolver ()
31
+ Pardiso. pardisoinit (solver)
31
32
solver_type != = nothing && Pardiso. set_solver! (solver, solver_type)
32
33
33
34
solver
34
35
else
35
36
solver = Pardiso. MKLPardisoSolver ()
37
+ Pardiso. pardisoinit (solver)
36
38
nprocs != = nothing && Pardiso. set_nprocs! (solver, nprocs)
37
- # for mkl 1 means conjugated an 2 means transposed.
39
+
40
+ # for mkl 1 means conjugated and 2 means transposed.
38
41
# https://www.intel.com/content/www/us/en/docs/onemkl/developer-reference-c/2024-0/pardiso-iparm-parameter.html#IPARM37
39
42
transposed_iparm = 2
43
+
40
44
solver
41
45
end
42
46
43
- Pardiso. pardisoinit (solver) # default initialization
44
-
45
47
if matrix_type != = nothing
46
48
Pardiso. set_matrixtype! (solver, matrix_type)
47
49
else
@@ -118,9 +120,9 @@ function SciMLBase.solve!(cache::LinearSolve.LinearCache, alg::PardisoJL; kwargs
118
120
Pardiso. pardiso (cache. cacheval, A, eltype (A)[])
119
121
cache. isfresh = false
120
122
end
121
-
122
123
Pardiso. set_phase! (cache. cacheval, Pardiso. SOLVE_ITERATIVE_REFINE)
123
124
Pardiso. pardiso (cache. cacheval, u, A, b)
125
+
124
126
return SciMLBase. build_linear_solution (alg, cache. u, nothing , cache)
125
127
end
126
128
0 commit comments