Skip to content

Conversation

@ChrisRackauckas-Claude
Copy link
Contributor

Summary

  • Change the default linear_verbosity from Minimal() to None() in NonlinearVerbosity
  • This prevents BLAS errors from being emitted when the linear solver encounters singular matrices
  • These errors are not fatal in the nonlinear solver context since the solver handles singular matrices gracefully by falling back to QR factorization

Motivation

Fixes #739 - BLAS errors should be silent by default because they are not fatal in the NonlinearSolve context. The solver gracefully handles singular matrices by switching from LU to QR factorization.

Before this change:

  • verbose=false → silent switching ✓
  • verbose=true → BLAS errors were thrown ✗
  • verbose=Detailed() → BLAS errors were thrown ✗

After this change:

  • verbose=false → silent switching ✓
  • verbose=true → silent switching ✓
  • verbose=Detailed() → warnings about switching (expected, user requested detailed output) ✓

Test plan

  • Tested with the exact examples from the issue
  • Ran NonlinearSolveBase tests locally (all pass)
  • Verified that existing verbosity tests still pass
  • Tested all verbosity presets (None, Minimal, Standard, Detailed, All)

🤖 Generated with Claude Code

Change the default linear_verbosity from Minimal() to None() in
NonlinearVerbosity to prevent BLAS errors from being emitted when
the linear solver encounters singular matrices. These errors are
not fatal in the nonlinear solver context since the solver
handles singular matrices gracefully by falling back to QR.

Fixes SciML#739

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@ChrisRackauckas ChrisRackauckas merged commit 8317694 into SciML:master Nov 27, 2025
116 of 134 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

verbose setting changes behavior of LU/QR switching

2 participants