[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