<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body>
<span id="mailbox-conversation"><div>I have a fairly simple problem that I’m trying to timestep:</div>
<div><br></div>
<div>u’ = A(t) u</div>
<div><br></div>
<div>I’m using the crank-nicholson method, which I understand (for this problem) to be:</div>
<div><br></div>
<div>u(t + h) = u(t) + h/2[A(t+h)*u(t+h) + A(t)*u(t)]</div>
<div>or</div>
<div>[1 - h/2 * A(t+1)] u(t+1) = [1 + h/2 * A(t)] u(t)</div>
<div><br></div>
<div>When I attempt to timestep using PETSc, the norm of `u` blows up.  When I do it directly (using the above), the norm of `u` doesn’t blow up.</div>
<div><br></div>
<div>It is important to note that the solution generated after the first step is identical for both, but the second step for Petsc has a norm of ~2, while for the directly calculated version it is ~1.  The third step for petsc has a norm of ~4, while the directly calculated version it is still ~1.</div>
<div><br></div>
<div>I’m not sure what I’m doing wrong.</div>
<div><br></div>
<div>PETSc code is taken out of the manual and is pretty simple:</div>
<div><br></div>
<div>
<div>        TSCreate( comm, &ts );</div>
<div>        TSSetProblemType( ts, TS_LINEAR);</div>
<div id="mb-reply">        TSSetType( ts, TSCN );</div>
<div id="mb-reply">        TSSetInitialTimeStep( ts, 0, 0.01 );</div>
<div>        TSSetDuration( ts, 5, 0.03 );</div>
<div>        TSSetFromOptions( ts );</div>
<div>        TSSetRHSFunction( ts, NULL, TSComputeRHSFunctionLinear, NULL );</div>
<div id="mb-reply">        TSSetRHSJacobian( ts, A, A, func, &cntx );</div>
<div id="mb-reply">        TSSolve( ts, psi0 );</div>
<div id="mb-reply"><br></div>
<div id="mb-reply">`func` just constructs A(t) at the time given.  The same code for calculating A(t) is used in both calculations, along with the same initial vector psi0, and the same time steps.</div>
<div id="mb-reply"><br></div>
<div id="mb-reply">Let me know what other information is needed.  I’m not sure what could be the problem.  `func` doesn’t touch U at all (should it?).</div>
<div id="mb-reply"><br></div>
<div id="mb-reply">-Andrew</div>
</div></span><div class="mailbox_signature"><br></div>
</body></html>