<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Any better choice if I can do right precondition?</p>
<p>Merge Jacobian to Function evaluation has performance lost. <br>
</p>
<div class="moz-cite-prefix">On 2023/10/4 02:13, Barry Smith wrote:<br>
</div>
<blockquote type="cite"
cite="mid:7A43650F-8584-4E0B-8689-68F73CA35C01@petsc.dev">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div><br>
</div>
Simply evaluate the Jacobian during your SNESComputeFunction and
save it for SNESComputeJacobian.
<div><br>
</div>
<div><br>
<div><br>
<blockquote type="cite">
<div>On Oct 3, 2023, at 1:51 PM, Gong Ding
<a class="moz-txt-link-rfc2396E" href="mailto:gongding@cn.cogenda.com"><gongding@cn.cogenda.com></a> wrote:</div>
<br class="Apple-interchange-newline">
<div>
<meta http-equiv="content-type" content="text/html;
charset=UTF-8">
<div>
<p>Hi all,</p>
<p>I'd like to do a special jacobian precondition
during the snes iteration, for which jacobian matrix
and RHS vector must be modified explicitly.</p>
<p>In the SNESComputeJacobian, the preconditioner P is
built after assembly of jacobian matrix.</p>
<p>I need to multiply P to J and RHS vector explicitly
as left precondition before the solve stage of J*dx =
rhs. <br>
</p>
<pre id="codecell0"><span class="w"></span><span class="nf">However, I find that petsc evaluates function before jacobian, so P*</span>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
<span class="nf"></span></pre>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
</body>
</html>