<div dir="ltr">Does linearly implicit mean that you can solve any nonlinear system with the ROSW methods? I set my entire system using TSSetIFunction, without any TSSetRHSFunction. <br><br>I wanted to try the ROSW methods because the THETA methods seems to want a time step much much smaller than the courant time step for the nonlinear solver to converge. I checked the validity of the solution and it is indeed right, so the residual evaluation should be correct. I'm solving for the general relativistic mhd equations in a fixed background spacetime (kerr blackhole). There are large variations in the density and pressure  and I use slope limiters. <br>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Mar 8, 2014 at 7:22 PM, Jed Brown <span dir="ltr"><<a href="mailto:jed@jedbrown.org" target="_blank">jed@jedbrown.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="">Peter Brune <<a href="mailto:brune@mcs.anl.gov">brune@mcs.anl.gov</a>> writes:<br>
<br>
> You can control Jacobian lagging with -snes_lag_jacobian and<br>
> -snes_lag_jacobian_presists by setting the option<br>
> -ts_rosw_recompute_jacobian to true.  Otherwise it defaults to having it<br>
> recompute once per timestep by setting the SNES to do so, wiping out the<br>
> persistent lagging.  This will give you a rather odd pattern of Jacobian<br>
> assembly, and I don't recommend it at all.  Your Jacobian will often be<br>
> computed on the unconverged nonlinear solution, and may be garbage.  What<br>
> would be more reasonable is for us to add some option at the TS level to<br>
> lag the Jacobian by a number of steps.<br>
<br>
</div>Rosenbrocks are linearly implicit and have to use the true Jacobian (so<br>
if you play games with lagging, the method is no longer consistent).<br>
The W methods can use an approximate Jacobian, but the method has no way<br>
to know how often the Jacobian needs to be updated (the method becomes<br>
unstable if you lag too much).  If you want to lag further than a step,<br>
I recommend writing a Rosenbrock (W) with more stages.  This way you<br>
have a consistent error estimator and don't need a special controller.<br>
</blockquote></div><br></div>