> On Oct 3, 2023, at 2:44 PM, Gong Ding <[email protected]> wrote: > > Any better choice if I can do right precondition? > > Merge Jacobian to Function evaluation has performance lost. >
Why ? Should still just compute the Jacobian once, just earlier in the process. > On 2023/10/4 02:13, Barry Smith wrote: >> >> Simply evaluate the Jacobian during your SNESComputeFunction and save it >> for SNESComputeJacobian. >> >> >> >>> On Oct 3, 2023, at 1:51 PM, Gong Ding <[email protected]> >>> <mailto:[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. >>> >>> 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 >>
