-
Notifications
You must be signed in to change notification settings - Fork 102
Open
Description
I mentioned here #338 that GMRES was failing silently from stagnation. Turns out BiCGStab is also failing silently from (some form of) breakdown.
Not so surprising that this fails given how I'm (mis)using the algorithm, but the failure should not be silent.
Reproducing code:
import IterativeSolvers: bicgstabl
import LinearAlgebra: cond, norm
for problem_dim in [25, 100]
succeeded = 0
for i = 1:100
condition_number = Inf
matrix = nothing
while condition_number > 1000
matrix = randn(Float64, (problem_dim, problem_dim))
condition_number = cond(matrix)
end
true_vec = randn(Float64, (problem_dim,))
b = matrix * true_vec
julia_soln = bicgstabl(matrix, b)
residual_norm = norm(julia_soln - true_vec)
succeeded += (residual_norm < 1) # very loose tolerance!
end
println("problem dim: $problem_dim. succeeded: $succeeded")
end
Metadata
Metadata
Assignees
Labels
No labels