[petsc-users] TS question 1: how to stop explicit methods because they do not use SNES(VI)?

Barry Smith bsmith at mcs.anl.gov
Tue Feb 14 22:01:35 CST 2017


> On Feb 14, 2017, at 9:56 PM, Jed Brown <jed at jedbrown.org> wrote:
> 
> Ed Bueler <elbueler at alaska.edu> writes:
>> Your question makes me think about why I am splitting the way I am.  For
>> sure *yes*, in my case they are separate terms and *no* I am not just
>> subtracting Lu from both sides.
>> 
>> The ice sheet thickness problem (u(t,x,y) >= 0 is thickness) is like
>> degenerate p-bratu, right?  My form is like
>> 
>> u_t - div (u^k |grad u|^{p-2} grad u) = g(t,u)
> 
> Are you also interested in the case with sliding?
> 
>> where the right side is only the elevation-dependent surface mass balance
>> in my context.  The right-hand stuff is (potentially) coupling to other
>> models which will be time-split, and provided by other codes, so the
>> "ultimate" coupled model will inevitably be imex in some vague sense.  The
>> stiff stuff on the left should be handled implicitly both for imex and
>> implicit, of course.  And I want to see the solver robustness effects of my
>> imex splitting of the problem.  I also want to compare actual explicit runs
>> despite their absurd short time step.
>> 
>> In any case, whatever my motivation, I am currently providing
>> 
>> RHSFunction = g(t,u)
>> IFunction = u_t - div (u^k |grad u|^{p-2} grad u)
>> 
>> Currently ARKIMEX, THETA, BDF all seem to work well, but explicit breaks.
>> As I understand it, Barry's PR will "fix" this by erroring-out when I try
>> to run it explicitly.  This is fine until ya'll work out a better API.
> 
> I would just have a PetscOptionsEList() for whether to evaluate the
> diffusive term on the left or right.  Shouldn't be more than a few lines
> of code.
> 
>>> What "fragile code"?
>> 
>> I mean I fear the prospect of a PETSc API which requires so conditionals
>> determining which "side"' various terms appear on, depending on user code
>> testing what method is running etc..  No such thing for now; my current
>> code is not fragile.  (Is an API based on "side" of an equation inherently
>> suspect?)
> 
> I think it's a bit peculiar and would prefer a named basket of terms if
> Barry insists on adding this interface.

  I'm all ears. 



More information about the petsc-users mailing list