On Fri, Jun 30, 2017 at 3:45 AM, Maximilian Hartig <imilian.har...@gmail.com > wrote:
> Hello, > > I’m trying to implement plasticity and have problems getting the Petsc > SNES to converge. To check if my residual formulation is correct I tried > running with -snes_fd for an easy example as the Petsc FAQ suggest. I > cannot seem to get the solver to converge at any cost. > I already tried to impose bounds on the solution and moved to vinewtonrsls > as a nonlinear solver. I checked and rechecked my residuals but I do not > find an error there. I now have the suspicion that the -snes_fd option is > not made for handling residuals who’s first derivatives are not continuous > (e.g. have an “if” condition in them for the plasticity/ flow-condition). > Can you confirm my suspicion? And is there another way to test my residual > formulation separate from my hand-coded jacobian? > -snes_fd does a finite difference approximation, so if the two samples are on different sides of your conditional, the answer can be crap. You can take a look at this: https://scicomp.stackexchange.com/questions/30/why-is-newtons-method-not-converging The SNESVI that we have only deals with bound constraints, but I think you have a complementarity constraint. We should implement a nice solver for this, like Mihai Anitescu and Dan Negrut have, but we don't have time right now. Thanks, Matt > Thanks, > Max -- 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 http://www.caam.rice.edu/~mk51/