Non-linear solve crashes with PETSc error 63, but linear-solver works
Issue #710
invalid
Dear all,
There seems to be an odd behavioral difference between the linear and the non-linear solver.
If I manually (or using the derivative-command) linearize the form and feed it to the linear solver, then everything works fine.
If I pass the very same non-linear problem into the solve call to be automatically linearized and solved, then the solver call crashes with PETSc Error 63...
Comments (4)
-
-
reporter Sure, that's possible. But even if you change the form a to
a = inner(du, u)*dx + inner(dp,p)*dx
in the above example, the behavior is exactly the same
-
- changed status to invalid
You've hit the dreaded
ufl.split
vsdolfin.split
(see Issue #194). Change(u,p) = q.split()
to
(u,p) = split(q)
-
reporter Thanks a lot! That has resolved the issue... Very interesting to see the two different effects of this wrt. the two solver calls...
- Log in to comment
Looks to me like you're assembling only over part of the space for the nonlinear problem. I think you'll have zero blocks in your matrix.