On 2023/10/4 02:47, Matthew Knepley wrote:
On Tue, Oct 3, 2023 at 1:51 PM Gong Ding <[email protected]> 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/>

Reply via email to