[petsc-users] snes failures
Juha Jaykka
juhaj at iki.fi
Wed May 18 13:38:53 CDT 2016
Dear list,
I'm designing a short training course on HPC, and decided to use PETSc as an
example of a good way of getting things done quick, easy, and with good
performance, and without needing to write one's own code for things like
linear or non-linear solvers etc.
However, my SNES example turned out to be problematic: I chose the (static)
sine-Gordon equation for my example, mostly because its exact solution is
known so it is easy to compare with numerics and also because it is, after
all, a dead simple equation. Yet my code refuses to converge most of the time!
Using -snes_type ngs always succeeds, but is also very slow. Any other type
will fail once I increase the domain size from ~100 points (the actual number
depends on the type). I always keep the lattice spacing at 0.1. The failure is
also always the same: DIVERGED_LINE_SEARCH. Some types manage to take one step
and get stuck, some types manage to decrease the norm once and then continue
forever without decreasing the norm but not complaining about divergence
either (unless they hit one of the max_it-type limits), and ncg is the worst
of all: it always (with any lattice size!) fails at the very first step.
I've checked the Jacobian, and I suspect it is ok as ngs converges and the
other types except ncg also converge nicely unless the domain is too big.
Any ideas of where this could go wrong?
Cheers,
Juha
P.S. I can share the whole code, if that is needed, but it is presently quite
messy thanks to all my efforts at trying to sort this out.
More information about the petsc-users
mailing list