[petsc-users] Is precondition works for ill-conditioned jacobian matrix

Gong Ding gongding at cn.cogenda.com
Thu Sep 14 11:30:22 CDT 2023


The physical problem itself is ill-conditioned since there are floating 
regions in the simulation domain.

I use MUMPS as 64 bit LU solver, and a special improved SuperLU as 128 
bit LU solver (https://github.com/cogenda/superlu, added float128 support).

Although 128 bit solver works, it is 10x slower.


I'd like to try, if  jacobian can be processed under 64 bit precision 
while keeps the Newton iteration convergence.



Method 1:

Use a block inversion of the main diagonal of jacobian as 
preconditioner  (or ILU? ). Then factorize M*J.

Both the precondition matrix and jacobian matrix are 64 bit.


Method 2:

Do a 64 bit LU factorization of jacobian matrix, and use the 
factorization result as a preconditioner for higher precision krylov 
solver (such as iterative refinement)




On 2023/9/14 23:05, Zhang, Hong wrote:
> Gong Ding,
> When you use a LU solver, the preconditioner M = inv(LU) = inv (J) on 
> theory. I suspect your jacobian evaluation by 64bit might be 
> inaccurate. What LU solver did you use? Run your code with option 
> '-snes_view -snes_monitor -ksp_monitor' and compare the displays.
> Hong
> ------------------------------------------------------------------------
> *From:* petsc-users <petsc-users-bounces at mcs.anl.gov> on behalf of 
> Mark Adams <mfadams at lbl.gov>
> *Sent:* Thursday, September 14, 2023 5:35 AM
> *To:* Gong Ding <gongding at cn.cogenda.com>
> *Cc:* petsc-users at mcs.anl.gov <petsc-users at mcs.anl.gov>
> *Subject:* Re: [petsc-users] Is precondition works for ill-conditioned 
> jacobian matrix
> I would first verify that you are happy with the solution that works.
>
> Next, I would worry about losing accuracy in computing M*J, but you 
> could try it and search for any related work. There may be some tricks.
>
> And MUMPS is good at high accuracy, you might try that and if it fails 
> look at the MUMPS docs for any flags for high-accuracy.
>
> Good luck,
> Mark
>
> On Thu, Sep 14, 2023 at 5:35 AM Gong Ding <gongding at cn.cogenda.com> wrote:
>
>     Hi all
>
>     I find such a nonlinear problem, the jacobian matrix is ill
>     conditioned.
>
>     Solve the jacobian matrix by 64bit LU  solver, the Newton method
>     failed
>     to convergence.
>
>     However, when solve the jacobian matrix by 128bit LU solver , Newton
>     iteration will convergence.
>
>     I think this phenomena indicate that , the jacobian matrix is ill
>     conditioned.
>
>
>     The question is, if I do a precondition as M*J*dx = -M*f(x), here
>     M is
>     the precondition matrix, . then I solve the matrix A=M*J by a LU
>     solver.
>
>     Can I expect that solve A=M*J has a better precision result that help
>     the convergence of Newton iteration?
>
>     Gong Ding
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20230915/222460a9/attachment-0001.html>


More information about the petsc-users mailing list