> On Feb 13, 2017, at 1:53 PM, Ed Bueler <[email protected]> wrote:
> 
> Dear Petsc --
> 
> This is the first of two short TS usage questions.
> 
> My problem is both stiff (diffusive PDE) and constrained, so I require
> 
>    -snes_type vinewton{rs|ss}ls
> 
> *and* I split my ODE system into IFunction and RHSFunction
> 
>    F(t,u,u_t) = G(t,u)
> 
> 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).
> 
> 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.

   Sounds like a bug to me. The methods should be checking if an IFunction is 
being provided and error out in that case.

  Barry

> 
> 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.
> 
> 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.
> 
> 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.
> 
> Thanks!
> 
> Ed
> 
> PS  I'd prefer not to enumerate the existing TS types and error on the bad 
> ones.  It is not nicely-maintainable.
> 
> 
> 
> -- 
> Ed Bueler
> Dept of Math and Stat and Geophysical Institute
> University of Alaska Fairbanks
> Fairbanks, AK 99775-6660
> 301C Chapman and 410D Elvey
> 907 474-7693 and 907 474-7199  (fax 907 474-5394)

Reply via email to