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

Gong Ding gongding at cn.cogenda.com
Tue Oct 3 13:44:31 CDT 2023


Any better choice if I can do right precondition?

Merge Jacobian to Function evaluation has performance lost.

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 <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.
>>
>> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20231004/c9dcaf55/attachment.html>


More information about the petsc-users mailing list