<div dir="ltr">Dear Petsc --<div><br>This is the first of two short TS usage questions.</div><div><br></div><div>My problem is both stiff (diffusive PDE) and constrained, so I require</div><div><br></div><div> -snes_type vinewton{rs|ss}ls</div><div><br></div><div>*and* I split my ODE system into IFunction and RHSFunction</div><div><br></div><div> F(t,u,u_t) = G(t,u)</div><div><br></div><div>where F(t,u,u_t) = u_t + f(t,u) in my case (i.e. no mass matrix needed), and the stiff part goes in f(t,u).</div><div><br></div><div>With this arrangement TS types beuler, theta, bdf, arkimex all work quite well. However, the program runs and produces nonsense with type rk and ssp, that is, explicit methods.</div><div><br></div><div>So my question is, how do I ask the TS (at run time) whether the chosen TS type will or will not call its SNES at each step? If SNES is not going to be used then I want to SETERRQ and stop. That is, I want to error-out if the *method* is fully explicit.<br></div><div><br></div><div>Note the constraints are enforced by the SNESVI, as they should be, not ad hoc projection. Also, as a technical matter, I cannot require my iterates to be feasible inside my IFunction evaluation because that would break VINEWTONSSLS.</div><div><br></div><div>Neither TSProblemType (mine is NONLINEAR) nor TSEquationType (mine is IMPLICIT I guess) seem to address this? My problem is indeed nonlinear and has stiff parts, but it is not a DAE and it *is* constrained.</div><div><br></div><div>Thanks!</div><div><br>Ed</div><div><br></div><div>PS I'd prefer not to enumerate the existing TS types and error on the bad ones. It is not nicely-maintainable.</div><div><br></div><div><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Ed Bueler<br>Dept of Math and Stat and Geophysical Institute<br>University of Alaska Fairbanks<br>Fairbanks, AK 99775-6660<br>301C Chapman and 410D Elvey<br>907 474-7693 and 907 474-7199 (fax 907 474-5394)</div>
</div></div>