<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div class="">Hi Sajid,</div>
<div class=""><br class="">
</div>
Can you please try this branch hongzh/fix-computejacobian quickly and see if it makes a difference?
<div class=""><br class="">
</div>
<div class="">Thanks,</div>
<div class="">Hong (Mr.)<br class="">
<div><br class="">
<blockquote type="cite" class="">
<div class="">On May 16, 2019, at 8:04 PM, Sajid Ali via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov" class="">petsc-users@mcs.anl.gov</a>> wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div dir="ltr" class="">
<div dir="ltr" class="">While there is a ~3.5X speedup, deleting the aforementioned 20 lines also leads the new version of petsc to give the wrong solution (off by orders of magnitude for the same program).
<br class="">
<br class="">
</div>
<div class="">I tried switching over the the IFunction/IJacobian interface as per the manual (page 146) which the following lines :<br class="">
```<br class="">
TSSetProblemType(ts,TSLINEAR);<br class="">
TSSetRHSFunction(ts,NULL,TSComputeRHSFunctionLinear,NULL);<br class="">
TSSetRHSJacobian(ts,A,A,TSComputeRHSJacobianConstant,NULL);<br class="">
```<br class="">
</div>
<div class="">are equivalent to :<br class="">
</div>
<div class="">```<br class="">
TSSetProblemType(ts,TSLINEAR);<br class="">
TSSetIFunction(ts,NULL,TSComputeIFunctionLinear,NULL);<br class="">
TSSetIJacobian(ts,A,A,TSComputeIJacobianConstant,NULL);<br class="">
```<br class="">
</div>
But the example at src/ts/examples/tutorials/ex3.c employs a strategy of setting a shift flag to prevent re-computation for time-independent problems. Moreover, the docs say "using this function (TSComputeIFunctionLinear) is NOT equivalent to using TSComputeRHSFunctionLinear()"
 and now I'm even more confused.<br clear="all" class="">
</div>
<div dir="ltr" class=""><br class="">
</div>
<div class="">PS : Doing the simple switch is as slow as the original code and the answer is wrong as well.
<br class="">
</div>
<div dir="ltr" class=""><br class="">
</div>
<div class="">Thank You,<br class="">
</div>
<div dir="ltr" class="gmail-m_6290488874186853915gmail-m_1389765672258582734gmail-m_6483013226690558604gmail_signature">
<div dir="ltr" class="">
<div style="font-size:12.8px" class="">Sajid Ali<br class="">
</div>
<div style="font-size:12.8px" class="">Applied Physics<br class="">
</div>
<div style="font-size:12.8px" class="">Northwestern University</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</body>
</html>