Skip to content

Commit

Permalink
Add a note on the first value
Browse files Browse the repository at this point in the history
  • Loading branch information
avik-pal committed Nov 23, 2023
1 parent 354e080 commit b7976fd
Show file tree
Hide file tree
Showing 7 changed files with 17 additions and 10 deletions.
5 changes: 5 additions & 0 deletions docs/src/basics/Logging.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,11 @@ sol = solve(prob; trace_level = TraceAll(), store_trace = Val(true));
sol.trace
```

!!! note

For `iteration == 0` only the `norm(fu, Inf)` is guaranteed to be meaningful. The other
values being meaningful are solver dependent.

## API

```@docs
Expand Down
2 changes: 1 addition & 1 deletion src/gaussnewton.jl
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ function SciMLBase.__init(prob::NonlinearLeastSquaresProblem{uType, iip}, alg_::
abstol, reltol, tc_cache_1 = init_termination_cache(abstol, reltol, fu1, u,
termination_condition)
_, _, tc_cache_2 = init_termination_cache(abstol, reltol, fu1, u, termination_condition)
trace = init_nonlinearsolve_trace(alg, u, fu1, J, du; kwargs...)
trace = init_nonlinearsolve_trace(alg, u, fu1, apply(zero, J), du; kwargs...)

Check warning on line 112 in src/gaussnewton.jl

View check run for this annotation

Codecov / codecov/patch

src/gaussnewton.jl#L112

Added line #L112 was not covered by tests

return GaussNewtonCache{iip}(f, alg, u, copy(u), fu1, fu2, zero(fu1), du, p, uf,
linsolve, J, JᵀJ, Jᵀf, jac_cache, false, maxiters, internalnorm, ReturnCode.Default,
Expand Down
2 changes: 1 addition & 1 deletion src/levenberg.jl
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ function SciMLBase.__init(prob::Union{NonlinearProblem{uType, iip},
tc_cache_2 = nothing
end

trace = init_nonlinearsolve_trace(alg, u, fu1, J, du; kwargs...)
trace = init_nonlinearsolve_trace(alg, u, fu1, apply(zero, J), du; kwargs...)

Check warning on line 224 in src/levenberg.jl

View check run for this annotation

Codecov / codecov/patch

src/levenberg.jl#L224

Added line #L224 was not covered by tests

if _unwrap_val(linsolve_with_JᵀJ)
mat_tmp = zero(JᵀJ)
Expand Down
2 changes: 1 addition & 1 deletion src/pseudotransient.jl
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ function SciMLBase.__init(prob::NonlinearProblem{uType, iip}, alg_::PseudoTransi

abstol, reltol, tc_cache = init_termination_cache(abstol, reltol, fu1, u,
termination_condition)
trace = init_nonlinearsolve_trace(alg, u, fu1, J, du; kwargs...)
trace = init_nonlinearsolve_trace(alg, u, fu1, apply(zero, J), du; kwargs...)

Check warning on line 98 in src/pseudotransient.jl

View check run for this annotation

Codecov / codecov/patch

src/pseudotransient.jl#L98

Added line #L98 was not covered by tests

return PseudoTransientCache{iip}(f, alg, u, copy(u), fu1, fu2, du, p, alpha, res_norm,
uf, linsolve, J, jac_cache, false, maxiters, internalnorm, ReturnCode.Default,
Expand Down
2 changes: 1 addition & 1 deletion src/raphson.jl
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ function SciMLBase.__init(prob::NonlinearProblem{uType, iip}, alg_::NewtonRaphso
termination_condition)

ls_cache = init_linesearch_cache(alg.linesearch, f, u, p, fu1, Val(iip))
trace = init_nonlinearsolve_trace(alg, u, fu1, J, du; kwargs...)
trace = init_nonlinearsolve_trace(alg, u, fu1, apply(zero, J), du; kwargs...)

Check warning on line 92 in src/raphson.jl

View check run for this annotation

Codecov / codecov/patch

src/raphson.jl#L91-L92

Added lines #L91 - L92 were not covered by tests

return NewtonRaphsonCache{iip}(f, alg, u, copy(u), fu1, fu2, du, p, uf, linsolve, J,
jac_cache, false, maxiters, internalnorm, ReturnCode.Default, abstol, reltol, prob,
Expand Down
12 changes: 7 additions & 5 deletions src/trace.jl
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,9 @@ __copy(x) = x
trace_level::Tr
end

reset!(trace::NonlinearSolveTrace) = resize!(trace.history, 0)
function reset!(trace::NonlinearSolveTrace)
(trace.history !== nothing && resize!(trace.history, 0))

Check warning on line 150 in src/trace.jl

View check run for this annotation

Codecov / codecov/patch

src/trace.jl#L149-L150

Added lines #L149 - L150 were not covered by tests
end

function Base.show(io::IO, trace::NonlinearSolveTrace)
for entry in trace.history
Expand Down Expand Up @@ -205,8 +207,8 @@ function update_trace!(trace::NonlinearSolveTrace{ShT, StT}, iter, u, fu, J, δu
return trace

Check warning on line 207 in src/trace.jl

View check run for this annotation

Codecov / codecov/patch

src/trace.jl#L206-L207

Added lines #L206 - L207 were not covered by tests
end

show_now = ShT && (iter % trace.trace_level.print_frequency == 0)
store_now = StT && (iter % trace.trace_level.store_frequency == 0)
show_now = ShT && (iter % trace.trace_level.print_frequency == 1)
store_now = StT && (iter % trace.trace_level.store_frequency == 1)
(show_now || store_now) && (entry = __trace_entry(trace.trace_level, iter, u, fu, J,

Check warning on line 212 in src/trace.jl

View check run for this annotation

Codecov / codecov/patch

src/trace.jl#L210-L212

Added lines #L210 - L212 were not covered by tests
δu, α))
store_now && push!(trace.history, entry)
Expand All @@ -226,8 +228,8 @@ function update_trace_with_invJ!(trace::NonlinearSolveTrace{ShT, StT}, iter, u,
return trace

Check warning on line 228 in src/trace.jl

View check run for this annotation

Codecov / codecov/patch

src/trace.jl#L227-L228

Added lines #L227 - L228 were not covered by tests
end

show_now = ShT && (iter % trace.trace_level.print_frequency == 0)
store_now = StT && (iter % trace.trace_level.store_frequency == 0)
show_now = ShT && (iter % trace.trace_level.print_frequency == 1)
store_now = StT && (iter % trace.trace_level.store_frequency == 1)
if show_now || store_now
J_ = trace.trace_level isa TraceMinimal ? J : inv(J)
entry = __trace_entry(trace.trace_level, iter, u, fu, J_, δu, α)

Check warning on line 235 in src/trace.jl

View check run for this annotation

Codecov / codecov/patch

src/trace.jl#L231-L235

Added lines #L231 - L235 were not covered by tests
Expand Down
2 changes: 1 addition & 1 deletion src/trustRegion.jl
Original file line number Diff line number Diff line change
Expand Up @@ -340,7 +340,7 @@ function SciMLBase.__init(prob::NonlinearProblem{uType, iip}, alg_::TrustRegion,

abstol, reltol, tc_cache = init_termination_cache(abstol, reltol, fu1, u,
termination_condition)
trace = init_nonlinearsolve_trace(alg, u, fu1, J, du; kwargs...)
trace = init_nonlinearsolve_trace(alg, u, fu1, apply(zero, J), du; kwargs...)

Check warning on line 343 in src/trustRegion.jl

View check run for this annotation

Codecov / codecov/patch

src/trustRegion.jl#L343

Added line #L343 was not covered by tests

return TrustRegionCache{iip}(f, alg, u_prev, u, fu_prev, fu1, fu2, p, uf, linsolve, J,
jac_cache, false, maxiters, internalnorm, ReturnCode.Default, abstol, reltol, prob,
Expand Down

0 comments on commit b7976fd

Please sign in to comment.