<div class="gmail_quote">On Tue, Dec 21, 2010 at 18:48, Michael E Henderson <span dir="ltr"><<a href="mailto:mhender@us.ibm.com">mhender@us.ibm.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<font size="2" face="sans-serif">Who can I talk to about the implementation
of the TSTheta Implicit time stepper?</font>
<br>
<br><font size="2" face="sans-serif">The implementation computes ts->vec_sol
which solves the implicit system. But the monitor returns ts->vec_sol+dt*th->Xdot,
which does not necessarily satisfy the equations. At least that's how I
read the code. I think that the call to VecAXPY which changes ts->vec_sol
needs to be moved to after the call to TSMonitor in src/ts/impls/implicit/theta/theta.c
Purely a matter of what is passed to the monitor routine.</font>
</blockquote></div><br><div>The state propagated by the method is the one that the monitor sees.  Calling the monitor at the quadrature point would be inconsistent, in my opinion.</div><div><br></div><div>The Theta method is not L-stable, it is not a robust method for stiff systems (but it is efficient and happens to work fairly frequently).  The standard alternative is BDF-2 which we don't currently have an implementation of, but would be fairly easy to add.  The downside of BDF-2 is that it's less efficient and less accurate.  Note that theta=1 is implicit Euler which has every stability property you could want, but is only first order accurate.</div>