Controlling Solver Verbosity

NonlinearSolve.jl provides fine-grained control over diagnostic messages, warnings, and errors through the verbose keyword argument. The verbosity system allows you to control what information is displayed during the solve process. See SciMLLogging.jl for more details.

NonlinearSolveBase.NonlinearVerbosityType
NonlinearVerbosity <: AbstractVerbositySpecifier

Verbosity configuration for NonlinearSolve.jl solvers, providing fine-grained control over diagnostic messages, warnings, and errors during nonlinear system solution.

Fields

Error Control Group

  • non_enclosing_interval: Messages when interval doesn't enclose root (bracketing methods)
  • alias_u0_immutable: Messages when aliasing u0 with immutable array
  • linsolve_failed_noncurrent: Messages when linear solve fails on non-current iteration
  • termination_condition: Messages about termination conditions

Numerical Group

  • threshold_state: Messages about threshold state in low-rank methods

Linear Solver Group

  • linear_verbosity: Verbosity configuration for linear solvers

Constructors

NonlinearVerbosity(preset::AbstractVerbosityPreset)

Create a NonlinearVerbosity using a preset configuration:

  • SciMLLogging.None(): All messages disabled

  • SciMLLogging.Minimal(): Only critical errors and fatal issues

  • SciMLLogging.Standard(): Balanced verbosity (default)

  • SciMLLogging.Detailed(): Comprehensive debugging information

  • SciMLLogging.All(): Maximum verbosity

    NonlinearVerbosity(; errorcontrol=nothing, performance=nothing, numerical=nothing, linearverbosity=nothing, kwargs...)

Create a NonlinearVerbosity with group-level or individual field control.

Examples

# Use a preset
verbose = NonlinearVerbosity(SciMLLogging.Standard())

# Set entire groups
verbose = NonlinearVerbosity(
    error_control = SciMLLogging.WarnLevel(),
    numerical = SciMLLogging.InfoLevel()
)

# Set individual fields
verbose = NonlinearVerbosity(
    alias_u0_immutable = SciMLLogging.WarnLevel(),
    threshold_state = SciMLLogging.InfoLevel()
)

# Mix group and individual settings
verbose = NonlinearVerbosity(
    numerical = SciMLLogging.InfoLevel(),  # Set all numerical to InfoLevel
    threshold_state = SciMLLogging.ErrorLevel()  # Override specific field
)
source