Diagnostics API
Timer Outputs
These functions are not exported since the names have a potential for conflict.
NonlinearSolve.enable_timer_outputs
— Functionenable_timer_outputs()
Enable TimerOutput
for all NonlinearSolve
algorithms. This is useful for debugging but has some overhead, so it is disabled by default.
NonlinearSolve.disable_timer_outputs
— Functiondisable_timer_outputs()
Disable TimerOutput
for all NonlinearSolve
algorithms. This should be used when NonlinearSolve
is being used in performance-critical code.
NonlinearSolve.@static_timeit
— Macro@static_timeit to name expr
Like TimerOutputs.@timeit_debug
but has zero overhead if TimerOutputs
is disabled via NonlinearSolve.disable_timer_outputs()
.
Tracing API
NonlinearSolve.TraceAll
— TypeTraceAll(freq)
TraceAll(; print_frequency = 1, store_frequency::Int = 1)
TraceWithJacobianConditionNumber
+ Store the Jacobian, u, f(u), and δu.
This is very expensive and makes copyies of the Jacobian, u, f(u), and δu.
See also TraceMinimal
and TraceWithJacobianConditionNumber
.
NonlinearSolve.TraceWithJacobianConditionNumber
— TypeTraceWithJacobianConditionNumber(freq)
TraceWithJacobianConditionNumber(; print_frequency = 1, store_frequency::Int = 1)
TraceMinimal
+ Print the Condition Number of the Jacobian.
See also TraceMinimal
and TraceAll
.
NonlinearSolve.TraceMinimal
— TypeTraceMinimal(freq)
TraceMinimal(; print_frequency = 1, store_frequency::Int = 1)
Trace Minimal Information
- Iteration Number
- f(u) inf-norm
- Step 2-norm
See also TraceWithJacobianConditionNumber
and TraceAll
.
For details about the arguments refer to the documentation of NonlinearSolve.AbstractNonlinearSolveTraceLevel
.