[petsc-users] Debugging failed solve (what's an acceptable upper bound to the condition number?)

Jed Brown jed at jedbrown.org
Fri Nov 20 13:33:09 CST 2015


Alex Lindsay <adlinds3 at ncsu.edu> writes:
> I'm almost ashamed to share my condition number because I'm sure it must 
> be absurdly high. Without applying -ksp_diagonal_scale and 
> -ksp_diagonal_scale_fix, the condition number is around 1e25. When I do 
> apply those two parameters, the condition number is reduced to 1e17. 
> Even after scaling all my variable residuals so that they were all on 
> the order of unity (a suggestion on the Moose list), I still have a 
> condition number of 1e12. 

Double precision provides 16 digits of accuracy in the best case.  When
you finite difference, the accuracy is reduced to 8 digits if the
differencing parameter is chosen optimally.  With the condition numbers
you're reporting, your matrix is singular up to available precision.

> I have no experience with condition numbers, but knowing that perfect
> condition number is unity, 1e12 seems unacceptable. What's an
> acceptable upper limit on the condition number?  Is it problem
> dependent? Having already tried scaling the individual variable
> residuals, I'm not exactly sure what my next method would be for
> trying to reduce the condition number.

Singular operators are often caused by incorrect boundary conditions.
You should try a small and simple version of your problem and find out
why it's producing a singular (or so close to singular we can't tell)
operator.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 818 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20151120/1f6209d9/attachment.pgp>


More information about the petsc-users mailing list