[petsc-users] snes options for rough solution

Barry Smith bsmith at mcs.anl.gov
Mon Dec 12 11:38:05 CST 2016


  Very cool problem.

   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.

   Barry

> On Dec 12, 2016, at 2:29 AM, Praveen C <cpraveen at gmail.com> wrote:
> 
> Hello Matt
> 
> I have attached the detailed output.
> 
> 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.
> 
> This equation is bit weird. Its like this
> 
> u_t = ( K u_x)_x
> 
> K = u / sqrt(u_x^2 + eps^2)
> 
> If u > 0, then this is a nonlinear parabolic eqn. Problem is that eps = h (mesh size), so at extrema, it is like
> 
> u_t = (u/eps)*u_xx
> 
> and (1/eps) is approximating a delta function.
> 
> Best
> praveen
> 
> On Mon, Dec 12, 2016 at 12:41 PM, Matthew Knepley <knepley at gmail.com> wrote:
> On Mon, Dec 12, 2016 at 1:04 AM, Matthew Knepley <knepley at gmail.com> wrote:
> On Mon, Dec 12, 2016 at 12:56 AM, Praveen C <cpraveen at gmail.com> wrote:
> Increasing number of snes iterations, I get convergence.
> 
> So it is a problem of initial guess being too far from the solution of the nonlinear equation.
> 
> Solution can be seen here
> 
> https://github.com/cpraveen/fenics/blob/master/1d/cosmic_ray/cosmic_ray.ipynb
> 
> Also, how is this a parabolic equation? It looks like u/|u'| to me, which does not look parabolic at all.
> 
>   Matt
>  
> Green curve is solution after two time steps.
> 
> It took about 100 snes iterations in first time step and about 50 in second time step.
> 
> I use exact Jacobian and direct LU solve. 
> 
> I do not believe its the correct Jacobian. Did you test it as I asked? Also run with
> 
>   -snes_monitor -ksp_monitor_true_residual -snes_view -snes_converged_reason
> 
> and then
> 
>   -snes_fd
> 
> and send all the output
> 
>    Matt
>  
> Thanks
> praveen
> 
> 
> 
> -- 
> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
> -- Norbert Wiener
> 
> 
> 
> -- 
> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
> -- Norbert Wiener
> 
> <log.txt>



More information about the petsc-users mailing list