Debao : > > I'm using PETSC iterative solver(PCILU & KSPGMRES) in OOQP, but when the to > be solved matrix is ill-posed, say condition number ~ 1e+4, then, KSPGMRES > will exceed its maximal iteration number(default as 10000), while when I > checked the same data with cholmod direct solver, it can solve the problem > and return an answer correctly. > > Does it mean the iterative solver(like GMRES) relies more on the well-pose > matrix than cholmod direct solver? Yes. Iterative solvers takes advantage of sparse matrix storage and are able to solve very large systems. However, its efficiency depends on the well-pose/conditioning of matrices. Direct solver is robust, but requires matrix factorization - require large memory storage and operations. It is used for the cases that iterative solver fails.
> How can I improve the case to avoid KSPGMRES fail case? Yes, you need use preconditioner. Run your code with '-help' to check available pc. Experimenting various preconditoners. Your condition number 1.e+4 is not bad. Preconditioning should work. Hong > > Your answer is appreciated. > > Thanks, > Debao > > -- The information contained in this communication and any attachments is > confidential and may be privileged, and is for the sole use of the intended > recipient(s). Any unauthorized review, use, disclosure or distribution is > prohibited. Unless explicitly stated otherwise in the body of this > communication or the attachment thereto (if any), the information is provided > on an AS-IS basis without any express or implied warranties or liabilities. > To the extent you are relying on this information, you are doing so at your > own risk. If you are not the intended recipient, please notify the sender > immediately by replying to this message and destroy all copies of this > message and any attachments. ASML is neither liable for the proper and > complete transmission of the information contained in this communication, nor > for any delay in its receipt. >
