<div dir="ltr">The form is u_t = A(t)u. <br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Jan 27, 2019 at 4:24 PM Smith, Barry F. <<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
<br>
> On Jan 25, 2019, at 4:51 PM, Sajid Ali via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a>> wrote:<br>
><br>
> Hi,<br>
><br>
> If I have a linear time dependent equation I'm trying to solve using TS, I can use :<br>
> TSSetProblemType(ts,TS_LINEAR);<br>
> TSSetRHSFunction(ts,NULL,TSComputeRHSFunctionLinear,NULL);<br>
> TSSetRHSJacobian(ts,A,A,YourComputeRHSJacobian, &appctx);<br>
><br>
> If the matrix that's being evaluated by YourComputeRHSJacobian is such that the non-zero structure stays the same and only the diagonal changes with time, is there a way to optimize the function so that it doesn't create the whole matrix from scratch each time ?<br>
<br>
If it is a linear PDE u_t = A u  then how can A change with time? It sounds like it really isn't a linear problem?<br>
<br>
   Barry<br>
<br>
><br>
> Naively I can make a dummy matrix and store the copy from t=0 and change the diagonal at each iteration but that unnecessarily doubles the memory consumption, is there a better way?<br>
><br>
><br>
> Thank You,<br>
> Sajid Ali<br>
> Applied Physics<br>
> Northwestern University<br>
<br>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div style="font-size:12.8px">Sajid Ali<br></div><div style="font-size:12.8px">Applied Physics<br></div><div style="font-size:12.8px">Northwestern University</div></div></div>