Consider this integro-differential heat equation taken from SciPy documentation page:

$ \nabla^2 P = \alpha \left(\iint_\Omega \cosh(P)dx dy \right)^2 $

which was found in this question.

In the considered python code the Newton-Krylov iterations are applied and perform quite nice for $\alpha=10$. However this method fails when $\alpha$ is changed from 10 to 15 or more. What might be the reason for this behaviour and is it possible to improve the situation?

Any references are appreciated, thank you.

EDIT: in the first part of the question I asked about possible physical background behind this problem. Several days after I decided to address to scipy-dev newsgroup and almost immediately received a reply from Pauli Virtanen:

This is just some random equation. There's no physical or otherwise background for it.

This information makes further discussion of the problem much less interesting, so I's rather close this question.


closed as primarily opinion-based by faleichik, Christian Clason, nicoguaro, Paul Apr 19 '16 at 19:40

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

  • $\begingroup$ Can you explain what you mean by "fails"? Does the solution not meet the convergence criteria? Or does the solution blow up? I imagine that @SparseSolverCodes is onto something about the change in condition number. If put into the form Ax=b, you'll probably see that the condition number of A is much larger in the case of $\alpha = 15$ or more compared to $\alpha = 10$. $\endgroup$ – Charles Apr 18 '16 at 1:14
  • $\begingroup$ @Charlie By 'fails' I mean very slow convergence. I don't know how you put this problem to $Ax=b$, but when I looked at finite difference approximation to Jacobian at x0 I observed no significant changes in eigenvalues between $\alpha=10$ and $\alpha=15$. $\endgroup$ – faleichik Apr 19 '16 at 7:25
  • $\begingroup$ Maybe it's a mathematical issue and not so much convergence (as @SparseSolverCodes and I thought). I posted a suggested answer below. The difference between my post and a case where the condition number increases due to, e.g. discontinuous material properties, is that there is a solution to handle discontinuous material properties (using a preconditioner, e.g.). $\endgroup$ – Charles Apr 19 '16 at 18:51

I'm not sure if this is the answer, but consider the case as $\alpha \rightarrow \infty$. In this case you're trying to solve

$\iint_{\Omega} \cosh(P) dxdy = 0$

And since cosh looks like this:

You can see that integrating it over any domain will never give you zero. If the diffusion of $P$ ($\nabla^2 P$) is not large enough to counteract this limit then you'll likely have problems.


Generally speaking, poor convergence (or no convergence at all) of an iterative method that is solving a system of linear algebraic equations is attributed to the fact that the corresponding matrix is ill-conditioned. In mechanical problems, that may be observed if the model is "loose" (no sufficient boundary conditions applied, or if the model consists of materials with very different elastic properties, like, say, steel and foam). For heat transfer problems, that would probably correspond to cases when the physical model consists of different materials with vastly different heat transfer coefficients.

  • $\begingroup$ It can also be due to initialization right? $\endgroup$ – Tolga Birdal Apr 17 '16 at 16:44
  • $\begingroup$ What do you mean exactly under that term ? Initialization of what ? $\endgroup$ – SparseSolverCodes Apr 17 '16 at 23:30

Not the answer you're looking for? Browse other questions tagged or ask your own question.