[petsc-users] How to do a precondition in SNES flow

Gong Ding gongding at cn.cogenda.com
Tue Oct 3 14:04:50 CDT 2023


On 2023/10/4 02:47, Matthew Knepley wrote:
> On Tue, Oct 3, 2023 at 1:51 PM Gong Ding <gongding at cn.cogenda.com> wrote:
>
>     Hi all,
>
>     I'd like to do a  special jacobian precondition during the snes
>     iteration, for which jacobian matrix and RHS vector must be
>     modified explicitly.
>
>     In the SNESComputeJacobian, the preconditioner P is built after
>     assembly of jacobian matrix.
>
>     I need to multiply P to J and RHS vector  explicitly as left
>     precondition before the solve stage of J*dx = rhs.
>
> What you are proposing is exactly what PETSc does with left 
> preconditioning, multiplies both sides by the preconditioner. What do 
> you want to change?

I'd like to multiply precondition matrix into jacobian matrix, and do LU 
factorization to jacobian matrix. not with iterative method. Something like

Kelley, C. T. "Newton's Method in Three Precisions." /arXiv preprint 
arXiv:2307.16051/ (2023).

BTW: does petsc have the plan to support multi-precision?




>
>   Thanks,
>
>      Matt
>
>     However, I find that petsc evaluates function before jacobian, so P*RHS vector can not be processed at SNESComputeFunction.
>
>     As a result,  I must find a hook function after SNESComputeJacobian and before the solve stage.
>
>     Any suggest?
>
>     Gong Ding
>
>
>
> -- 
> What most experimenters take for granted before they begin their 
> experiments is infinitely more interesting than any results to which 
> their experiments lead.
> -- Norbert Wiener
>
> https://www.cse.buffalo.edu/~knepley/ 
> <http://www.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20231004/62b1e36e/attachment.html>


More information about the petsc-users mailing list