Consider a system of PDEs $$ \begin{cases} u_t = \nabla \cdot (D(u)\nabla u) + \frac{c}{K_U+c}u-ku\\ c_t = d_c\Delta c -\frac{\nu_U c}{K_U + c}u \end{cases} $$ with some boundary conditions. Here, $D(u)$ is a diffusion coefficient which depends on $u$; $K_U$, $\nu_U$ and $k$ are some constants. $D(u)$ can be defined as, for example,

$$D(u):=\delta \frac{u^\alpha}{(1-u)^\beta},$$ with $\alpha,\beta,\delta$ being some constants.

After this system of PDEs is discretized using the finite volume method one obtains the following system of ODEs

$$\begin{cases}\frac{d\vec{U}}{dt}=\underline{D(\vec{U})}\vec{U}+\underline{R_U(\vec{C})}\vec{U}\\ \frac{d\vec{C}}{dt}=\underline{L}\vec{C}-\underline{R_C(\vec{C})}\vec{U}+\vec{b} \end{cases}$$

where the underlined letters are matrices and $\vec{b}$ is a vector containing some terms from (unspecified here) the boundary conditions.

As we can see, the matrix $\underline{D(\vec{U})}$ depends on the vector for which a numerical method will solve this system of equations, that is the vector $\vec{U}$.

But then how can such a system be solved linearly if it will contain non-linear terms? I.e. what am I missing?


1 Answer 1


You can't. Nonlinear systems of equations are in general not solvable exactly. What you need to do is to use a method to solve nonlinear systems, of which there are of course quite a lot:

  • A simple approach would be to use $D(U)\approx D(U^{n-1})$, where $D^{n-1}$ is the solution of the previous time step.
  • A possibly smarter approach would be to use $D(U)\approx D(U^{\ast})$, where $D^{\ast}$ is extrapolated from the previous time steps.
  • Probably even better is to use a Newton iteration.

The first of these are "explicit" methods, whereas the last one is implicit.

  • $\begingroup$ Thanks. But how are numerical linear algebra methods applied in a case like this one to solve a system, without thinking about time steps but only the spatial variables? Even if we equated the time derivatives in the ODE system to 0 we would still get some nonlinear terms because $D(U)$ is multiplied by $U$. $\endgroup$
    – sequence
    May 19, 2019 at 23:41
  • 2
    $\begingroup$ @sequence: You're starting from the wrong point. You can't even apply numerical linear algebra methods if you had a linear problem where $D$ does not depend on $U$, if you didn't want to do time stepping. ODEs can only be solved numerically if you do use time stepping. Nonlinear problems just make the problem you solve in each time step a bit more complicated. $\endgroup$ May 20, 2019 at 7:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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