@@ -25,24 +25,24 @@ function SciMLBase.__solve(prob::NonlinearProblem, alg::SIAMFANLEquationsJL, arg
25
25
end
26
26
27
27
if method == :newton
28
- res = nsolsc (f!, prob. u0; maxit = maxiters, atol = abstol, rtol = reltol, printerr = show_trace)
28
+ sol = nsolsc (f!, prob. u0; maxit = maxiters, atol = abstol, rtol = reltol, printerr = show_trace)
29
29
elseif method == :pseudotransient
30
- res = ptcsolsc (f!, prob. u0; delta0 = delta, maxit = maxiters, atol = abstol, rtol= reltol, printerr = show_trace)
30
+ sol = ptcsolsc (f!, prob. u0; delta0 = delta, maxit = maxiters, atol = abstol, rtol= reltol, printerr = show_trace)
31
31
elseif method == :secant
32
- res = secant (f!, prob. u0; maxit = maxiters, atol = abstol, rtol = reltol, printerr = show_trace)
32
+ sol = secant (f!, prob. u0; maxit = maxiters, atol = abstol, rtol = reltol, printerr = show_trace)
33
33
end
34
34
35
- if res . errcode == 0
35
+ if sol . errcode == 0
36
36
retcode = ReturnCode. Success
37
- elseif res . errcode == 10
37
+ elseif sol . errcode == 10
38
38
retcode = ReturnCode. MaxIters
39
- elseif res . errcode == 1
39
+ elseif sol . errcode == 1
40
40
retcode = ReturnCode. Failure
41
- elseif res . errcode == - 1
41
+ elseif sol . errcode == - 1
42
42
retcode = ReturnCode. Default
43
43
end
44
- stats = method == :pseudotransient ? nothing : (SciMLBase. NLStats (res . stats. ifun[ 1 ], res . stats. ijac[ 1 ] , 0 , 0 , res . stats. iarm[ 1 ] ))
45
- return SciMLBase. build_solution (prob, alg, res . solution, res . history; retcode, stats)
44
+ stats = method == :pseudotransient ? nothing : (SciMLBase. NLStats (sum (sol . stats. ifun), sum (sol . stats. ijac) , 0 , 0 , sum (sol . stats. iarm) ))
45
+ return SciMLBase. build_solution (prob, alg, sol . solution, sol . history; retcode, stats, original = sol )
46
46
else
47
47
u = NonlinearSolve. __maybe_unaliased (prob. u0, alias_u0)
48
48
end
@@ -74,22 +74,22 @@ function SciMLBase.__solve(prob::NonlinearProblem, alg::SIAMFANLEquationsJL, arg
74
74
linsolve_alg = String (linsolve)
75
75
76
76
if method == :newton
77
- res = nsoli (f!, u, FS, JVS; lsolver = linsolve_alg, maxit = maxiters, atol = abstol, rtol = reltol, printerr = show_trace)
77
+ sol = nsoli (f!, u, FS, JVS; lsolver = linsolve_alg, maxit = maxiters, atol = abstol, rtol = reltol, printerr = show_trace)
78
78
elseif method == :pseudotransient
79
- res = ptcsoli (f!, u, FS, JVS; lsolver = linsolve_alg, maxit = maxiters, atol = abstol, rtol = reltol, printerr = show_trace)
79
+ sol = ptcsoli (f!, u, FS, JVS; lsolver = linsolve_alg, maxit = maxiters, atol = abstol, rtol = reltol, printerr = show_trace)
80
80
end
81
81
82
- if res . errcode == 0
82
+ if sol . errcode == 0
83
83
retcode = ReturnCode. Success
84
- elseif res . errcode == 10
84
+ elseif sol . errcode == 10
85
85
retcode = ReturnCode. MaxIters
86
- elseif res . errcode == 1
86
+ elseif sol . errcode == 1
87
87
retcode = ReturnCode. Failure
88
- elseif res . errcode == - 1
88
+ elseif sol . errcode == - 1
89
89
retcode = ReturnCode. Default
90
90
end
91
- stats = method == :pseudotransient ? nothing : (SciMLBase. NLStats (res . stats. ifun[ 1 ], res . stats. ijac[ 1 ] , 0 , 0 , res . stats. iarm[ 1 ] ))
92
- return SciMLBase. build_solution (prob, alg, res . solution, res . history; retcode, stats)
91
+ stats = method == :pseudotransient ? nothing : (SciMLBase. NLStats (sum (sol . stats. ifun), sum (sol . stats. ijac) , 0 , 0 , sum (sol . stats. iarm) ))
92
+ return SciMLBase. build_solution (prob, alg, sol . solution, sol . history; retcode, stats, original = sol )
93
93
end
94
94
95
95
if prob. f. jac === nothing
@@ -143,30 +143,29 @@ function SciMLBase.__solve(prob::NonlinearProblem, alg::SIAMFANLEquationsJL, arg
143
143
AJ! (J, u, x) = J! (J, x, prob. p)
144
144
145
145
if method == :newton
146
- res = nsol (f!, u, FS, FPS, AJ!;
146
+ sol = nsol (f!, u, FS, FPS, AJ!;
147
147
sham= 1 , rtol = reltol, atol = abstol, maxit = maxiters,
148
148
printerr = show_trace)
149
149
elseif method == :pseudotransient
150
- res = ptcsol (f!, u, FS, FPS, AJ!;
150
+ sol = ptcsol (f!, u, FS, FPS, AJ!;
151
151
rtol = reltol, atol = abstol, maxit = maxiters,
152
152
delta0 = delta, printerr = show_trace)
153
-
154
153
end
155
154
156
- if res . errcode == 0
155
+ if sol . errcode == 0
157
156
retcode = ReturnCode. Success
158
- elseif res . errcode == 10
157
+ elseif sol . errcode == 10
159
158
retcode = ReturnCode. MaxIters
160
- elseif res . errcode == 1
159
+ elseif sol . errcode == 1
161
160
retcode = ReturnCode. Failure
162
- elseif res . errcode == - 1
161
+ elseif sol . errcode == - 1
163
162
retcode = ReturnCode. Default
164
163
end
165
164
166
-
167
165
# pseudo transient continuation has a fixed cost per iteration, iteration statistics are not interesting here.
168
- stats = method == :pseudotransient ? nothing : (SciMLBase. NLStats (res. stats. ifun[1 ], res. stats. ijac[1 ], 0 , 0 , res. stats. iarm[1 ]))
169
- return SciMLBase. build_solution (prob, alg, res. solution, res. history; retcode, stats)
166
+ stats = method == :pseudotransient ? nothing : (SciMLBase. NLStats (sum (sol. stats. ifun), sum (sol. stats. ijac), 0 , 0 , sum (sol. stats. iarm)))
167
+ println (sol. stats)
168
+ return SciMLBase. build_solution (prob, alg, sol. solution, sol. history; retcode, stats, original = sol)
170
169
end
171
170
172
171
end
0 commit comments