@@ -16,6 +16,7 @@ LinearSolve.@concrete struct LinearVerbosity <:
1616 blas_info
1717 blas_success
1818 condition_number
19+ convergence_failure
1920end
2021
2122function LinearVerbosity (;
@@ -56,7 +57,8 @@ function LinearVerbosity(;
5657 blas_invalid_args = ErrorLevel (),
5758 blas_info = Silent (),
5859 blas_success = Silent (),
59- condition_number= Silent ()
60+ condition_number= Silent (),
61+ convergence_failure= WarnLevel ()
6062 )
6163
6264 # Apply group-level settings
@@ -94,31 +96,33 @@ function LinearVerbosity(verbose::AbstractVerbosityPreset)
9496 KrylovJL_verbosity = Silent (),
9597 HYPRE_verbosity = Silent (),
9698 pardiso_verbosity = Silent (),
97- blas_errors = ErrorLevel (),
98- blas_invalid_args = ErrorLevel (),
99+ blas_errors = ErrorLevel (),
100+ blas_invalid_args = ErrorLevel (),
99101 blas_info = Silent (),
100102 blas_success = Silent (),
101- condition_number = Silent ()
103+ condition_number = Silent (),
104+ convergence_failure = Silent ()
102105 )
103106 elseif verbose isa Standard
104107 # Standard: Everything from Minimal + non-fatal warnings
105108 LinearVerbosity ()
106109 elseif verbose isa Detailed
107110 # Detailed: Everything from Standard + debugging/solver behavior
108111 LinearVerbosity (
109- default_lu_fallback = WarnLevel (),
110- no_right_preconditioning = InfoLevel (),
111- using_IterativeSolvers = InfoLevel (),
112- IterativeSolvers_iterations = Silent (),
112+ default_lu_fallback = WarnLevel (),
113+ no_right_preconditioning = InfoLevel (),
114+ using_IterativeSolvers = InfoLevel (),
115+ IterativeSolvers_iterations = Silent (),
113116 KrylovKit_verbosity = CustomLevel (2 ), # STARTSTOP_LEVEL in KrylovKit.jl
114- KrylovJL_verbosity = CustomLevel (1 ), # verbose = true in Krylov.jl
117+ KrylovJL_verbosity = CustomLevel (1 ), # verbose = true in Krylov.jl
115118 HYPRE_verbosity = InfoLevel (),
116- pardiso_verbosity = CustomLevel (1 ), # verbose = true in Pardiso.jl
117- blas_errors = ErrorLevel (),
118- blas_invalid_args = ErrorLevel (),
119- blas_info = InfoLevel (),
120- blas_success = InfoLevel (),
121- condition_number = Silent ()
119+ pardiso_verbosity = CustomLevel (1 ), # verbose = true in Pardiso.jl
120+ blas_errors = ErrorLevel (),
121+ blas_invalid_args = ErrorLevel (),
122+ blas_info = InfoLevel (),
123+ blas_success = InfoLevel (),
124+ condition_number = Silent (),
125+ convergence_failure = WarnLevel ()
122126 )
123127 elseif verbose isa All
124128 # All: Maximum verbosity - every possible logging message at InfoLevel
@@ -128,19 +132,20 @@ function LinearVerbosity(verbose::AbstractVerbosityPreset)
128132 using_IterativeSolvers = InfoLevel (),
129133 IterativeSolvers_iterations = InfoLevel (),
130134 KrylovKit_verbosity = CustomLevel (3 ), # EACHITERATION_LEVEL in KrylovKit.jl
131- KrylovJL_verbosity = CustomLevel (1 ),
135+ KrylovJL_verbosity = CustomLevel (1 ),
132136 HYPRE_verbosity = InfoLevel (),
133- pardiso_verbosity = CustomLevel (1 ), # verbsoe = true in Pardiso.jl
134- blas_errors = ErrorLevel (),
137+ pardiso_verbosity = CustomLevel (1 ), # verbsoe = true in Pardiso.jl
138+ blas_errors = ErrorLevel (),
135139 blas_invalid_args = ErrorLevel (),
136140 blas_info = InfoLevel (),
137141 blas_success = InfoLevel (),
138- condition_number = InfoLevel ()
142+ condition_number = InfoLevel (),
143+ convergence_failure = WarnLevel ()
139144 )
140145 end
141146end
142147
143- @inline function LinearVerbosity (verbose:: None )
148+ @inline function LinearVerbosity (verbose:: None )
144149 LinearVerbosity (
145150 Silent (),
146151 Silent (),
154159 Silent (),
155160 Silent (),
156161 Silent (),
162+ Silent (),
157163 Silent ())
158164end
159165
@@ -175,7 +181,7 @@ const error_control_options = (:default_lu_fallback, :blas_errors, :blas_invalid
175181const performance_options = (:no_right_preconditioning ,)
176182const numerical_options = (:using_IterativeSolvers , :IterativeSolvers_iterations ,
177183 :KrylovKit_verbosity , :KrylovJL_verbosity , :HYPRE_verbosity , :pardiso_verbosity ,
178- :blas_info , :blas_success , :condition_number )
184+ :blas_info , :blas_success , :condition_number , :convergence_failure )
179185
180186function option_group (option:: Symbol )
181187 if option in error_control_options
0 commit comments