File tree Expand file tree Collapse file tree 2 files changed +81
-4
lines changed
Expand file tree Collapse file tree 2 files changed +81
-4
lines changed Original file line number Diff line number Diff line change @@ -54,14 +54,14 @@ function LinearSolve.init_cacheval(alg::PardisoJL,
5454
5555 # pass in vector of tuples like [(iparm::Int, key::Int) ...]
5656 if iparm != = nothing
57- for i in length ( iparm)
58- Pardiso. set_iparm! (solver, iparm[i] . .. )
57+ for i in iparm
58+ Pardiso. set_iparm! (solver, i ... )
5959 end
6060 end
6161
6262 if dparm != = nothing
63- for i in length ( dparm)
64- Pardiso. set_dparm! (solver, dparm[i] . .. )
63+ for d in dparm
64+ Pardiso. set_dparm! (solver, d ... )
6565 end
6666 end
6767
Original file line number Diff line number Diff line change @@ -52,3 +52,80 @@ sol33 = solve(linsolve)
5252@test sol11. u ≈ sol31. u
5353@test sol12. u ≈ sol32. u
5454@test sol13. u ≈ sol33. u
55+
56+ # Testing and demonstrating Pardiso.set_iparm! for MKLPardisoSolver
57+ solver = Pardiso. MKLPardisoSolver ()
58+ iparm = [
59+ (1 , 1 ),
60+ (2 , 2 ),
61+ (3 , 0 ),
62+ (4 , 0 ),
63+ (5 , 0 ),
64+ (6 , 0 ),
65+ (7 , 0 ),
66+ (8 , 20 ),
67+ (9 , 0 ),
68+ (10 , 13 ),
69+ (11 , 1 ),
70+ (12 , 1 ),
71+ (13 , 1 ),
72+ (14 , 0 ),
73+ (15 , 0 ),
74+ (16 , 0 ),
75+ (17 , 0 ),
76+ (18 , - 1 ),
77+ (19 , - 1 ),
78+ (20 , 0 ),
79+ (21 , 0 ),
80+ (22 , 0 ),
81+ (23 , 0 ),
82+ (24 , 10 ),
83+ (25 , 0 ),
84+ (26 , 0 ),
85+ (27 , 1 ),
86+ (28 , 0 ),
87+ (29 , 0 ),
88+ (30 , 0 ),
89+ (31 , 0 ),
90+ (32 , 0 ),
91+ (33 , 0 ),
92+ (34 , 0 ),
93+ (35 , 0 ),
94+ (36 , 0 ),
95+ (37 , 0 ),
96+ (38 , 0 ),
97+ (39 , 0 ),
98+ (40 , 0 ),
99+ (41 , 0 ),
100+ (42 , 0 ),
101+ (43 , 0 ),
102+ (44 , 0 ),
103+ (45 , 0 ),
104+ (46 , 0 ),
105+ (47 , 0 ),
106+ (48 , 0 ),
107+ (49 , 0 ),
108+ (50 , 0 ),
109+ (51 , 0 ),
110+ (52 , 0 ),
111+ (53 , 0 ),
112+ (54 , 0 ),
113+ (55 , 0 ),
114+ (56 , 0 ),
115+ (57 , 0 ),
116+ (58 , 0 ),
117+ (59 , 0 ),
118+ (60 , 0 ),
119+ (61 , 0 ),
120+ (62 , 0 ),
121+ (63 , 0 ),
122+ (64 , 0 ),
123+ ]
124+
125+ for i in iparm
126+ Pardiso. set_iparm! (solver, i... )
127+ end
128+
129+ for i in Base. OneTo (length (iparm))
130+ @test Pardiso. get_iparm (solver, i) == iparm[i][2 ]
131+ end
You can’t perform that action at this time.
0 commit comments