Alex Lindsay <[email protected]> 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.
signature.asc
Description: PGP signature
