<div dir="ltr">You are right, this problem needs adaptive time stepping. Can you recommend some papers/books on this, wrt schemes implemented in Petsc.<div><br></div><div>I could write my problem in Petsc and solve with backward euler and snes (I was using fenics before). I will try TS next.</div><div><br></div><div>Matt, I tried -snes_fd which takes more iterations than with exact Jacobian, and gives same answer. So my exact Jacobian should be ok.</div><div><br></div><div>I have been learning petsc since a few months, and it is great that I can already solve my problems with it. Its been a lot of fun coding with petsc.</div><div><br></div><div>Best</div><div>praveen</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Dec 12, 2016 at 11:08 PM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
  Very cool problem.<br>
<br>
   I think you should use TS to solve it. TS has higher order solvers with adaptive time-stepping, likely at the very beginning it will end up with a very small time step but then quickly increase the time-step. Frankly it is goofy to use backward Euler with fixed time step on this problem; you'll find that TS is no harder to use than SNES, you just need to use TSSetRHSFunction() and TSSetRHSJacobian() and select an implicit solver.<br>
<br>
   Barry<br>
<div><div class="h5"><br>
> On Dec 12, 2016, at 2:29 AM, Praveen C <<a href="mailto:cpraveen@gmail.com">cpraveen@gmail.com</a>> wrote:<br>
><br>
> Hello Matt<br>
><br>
> I have attached the detailed output.<br>
><br>
> Fenics automatically computes Jacobian, so I think Jacobian should be correct. I am not able to run the Fenics code without giving the Jacobian. I am currently writing a C code where I can test this.<br>
><br>
> This equation is bit weird. Its like this<br>
><br>
> u_t = ( K u_x)_x<br>
><br>
> K = u / sqrt(u_x^2 + eps^2)<br>
><br>
> If u > 0, then this is a nonlinear parabolic eqn. Problem is that eps = h (mesh size), so at extrema, it is like<br>
><br>
> u_t = (u/eps)*u_xx<br>
><br>
> and (1/eps) is approximating a delta function.<br>
><br>
> Best<br>
> praveen<br>
><br>
> On Mon, Dec 12, 2016 at 12:41 PM, Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>> wrote:<br>
> On Mon, Dec 12, 2016 at 1:04 AM, Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>> wrote:<br>
> On Mon, Dec 12, 2016 at 12:56 AM, Praveen C <<a href="mailto:cpraveen@gmail.com">cpraveen@gmail.com</a>> wrote:<br>
> Increasing number of snes iterations, I get convergence.<br>
><br>
> So it is a problem of initial guess being too far from the solution of the nonlinear equation.<br>
><br>
> Solution can be seen here<br>
><br>
> <a href="https://github.com/cpraveen/fenics/blob/master/1d/cosmic_ray/cosmic_ray.ipynb" rel="noreferrer" target="_blank">https://github.com/cpraveen/<wbr>fenics/blob/master/1d/cosmic_<wbr>ray/cosmic_ray.ipynb</a><br>
><br>
> Also, how is this a parabolic equation? It looks like u/|u'| to me, which does not look parabolic at all.<br>
><br>
>   Matt<br>
><br>
> Green curve is solution after two time steps.<br>
><br>
> It took about 100 snes iterations in first time step and about 50 in second time step.<br>
><br>
> I use exact Jacobian and direct LU solve.<br>
><br>
> I do not believe its the correct Jacobian. Did you test it as I asked? Also run with<br>
><br>
>   -snes_monitor -ksp_monitor_true_residual -snes_view -snes_converged_reason<br>
><br>
> and then<br>
><br>
>   -snes_fd<br>
><br>
> and send all the output<br>
><br>
>    Matt<br>
><br>
> Thanks<br>
> praveen<br>
><br>
><br>
><br>
> --<br>
> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
> -- Norbert Wiener<br>
><br>
><br>
><br>
> --<br>
> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>
> -- Norbert Wiener<br>
><br>
</div></div>> <log.txt><br>
<br>
</blockquote></div><br></div>