I was playing a little bit with the Runge-Kutta procedure for the Incompressible Navier-Stokes equation and came up with something strange, so I would like to know where I'm wrong or doing something I shouldn't.

Let's consider $u_i = u^n + \Delta t \sum_{j=0}^{i-1}a_{ij}F(u_j)u_j - c_i \Delta t G \phi_i $

where $F$ is the right hand side operator of the Navier-Stokes equation and $G$ is the discrete gradient operator.

So if I want to find a pressure equation, I should apply the divergence $M$ operator both sides

$Mu_i = Mu^n + \Delta t \sum_{j=0}^{i-1}a_{ij}MF(u_j)u_j - c_i \Delta t MG \phi_i $

and by employing the incompressibility constraint in the inner stages and of course for the $u^n$ (i.e. $M u^n = 0$ and $Mu_i = 0$), I get

$ MG \phi_i = \frac{1}{c_i} \sum_{j=0}^{i-1}a_{ij}MF(u_j)u_j$

Let's define $L = MG$ as the discrete laplacian operator, so that

$ L \phi_i = \frac{1}{c_i} \sum_{j=0}^{i-1}a_{ij}MF(u_j)u_j$

I know that if I solve this pressure poisson equation, I would get the $\phi_i$ lagrange multiplier that allows me to project the velocity into a divergence free field.

But since I need the gradient of the pseudo-pressure, what if I write something like

$ \phi_i = \frac{1}{c_i} \sum_{j=0}^{i-1}a_{ij}L^{-1}MF(u_j)u_j$

$ G\phi_i = \frac{1}{c_i} \sum_{j=0}^{i-1}a_{ij}GL^{-1}MF(u_j)u_j$


$GL^{-1}M = G(MG)^{-1}M = GG^{-1}M^{-1}M = I$

so I get that

$G\phi_i = \frac{1}{c_i} \sum_{j=0}^{i-1}a_{ij}F(u_j)u_j$

that implies that $u_i = u_n$, hence I'm not advancing in time ?? I don't know where am I wrong. Thank you guys in advance.


1 Answer 1


Applying the inverse of the Laplacian $L$ and $G$

$$ G\phi_i = \frac{1}{c_i} \sum_{j=0}^{i-1}a_{ij}G L^{-1}MF(u_j)u_j, $$

would violate some previous assumpions

$$ M u^n = 0 ,\quad Mu_i = 0, $$


$$ \begin{align} L^{-1}M u^n &\ne 0 ,\quad L^{-1}Mu_i \ne 0,\\ (MG)^{-1}M u^n &\ne 0 ,\quad (MG)^{-1}Mu_i \ne 0,\\ G^{-1}M^{-1}M u^n &\ne 0 ,\quad G^{-1}M^{-1}Mu_i \ne 0,\\ G^{-1} u^n &\ne 0 ,\quad G^{-1}u_i \ne 0.\\ \end{align} $$


$$ \begin{align} GG^{-1} u^n &\ne 0 ,\quad GG^{-1}u_i \ne 0,\\ u^n &\ne 0 ,\quad u_i \ne 0. \quad \square \\ \end{align} $$

The correct equation should be

$$ G\phi_i = \frac{1}{c_i} \sum_{j=0}^{i-1}a_{ij}F(u_j)u_j - 1/\Delta t (u_i - u^n). $$

See your first equation.

Edit (see the comment):

Suppose you have a divergence/gradient operator, we call it $D$, with a divergence free $u = c$ (constant).

Then it holds

$$ D u = 0. $$

Now we apply the inverse of the divergence/gradient operator and naively assume that a matrix-vector multiplication with a zero vector results also in a zero vector

$$ \begin{align} D^{-1} D u &= D^{-1} 0,\\ u &= 0. \end{align} $$

However, this contradicts the assumption $u=c$.

The only logical conclusion from this is that the discrete divergence/gradient operator is not invertible on its own without further assumptions, e.g. boundary conditions.

Or in other words: The indefinite integral of zero is not zero but constant c.

  • $\begingroup$ Thanks for the answer, I have a few questions though. If $M u^n = 0$ and the matrix multiplication is associative, shouldn't be $L^{-1}Mu^n = 0$ too ? Also, in the last equation you wrote, is it missing a $\Delta t$ at the denominator for $u_i$ and $u^n$ ? $\endgroup$
    – Marco
    May 1, 2023 at 15:04
  • $\begingroup$ That is an interesting question, see my edit. $\endgroup$
    – ConvexHull
    May 1, 2023 at 17:11
  • 1
    $\begingroup$ I got it thanks, indeed $D$ is singular, otherwise there will be no chance other than $u = 0$ for the equation $Du = 0$ to have a solution, as well as $L$ his $L^{-1}$ does not exist, and writing it as $L^{-1}$ is just only "a way to say" solve the following system, but I'm not allowed to do any particular mathematical manipulation with it, right? big thanks anyway $\endgroup$
    – Marco
    May 1, 2023 at 17:28
  • $\begingroup$ You are welcome. By the way, I added the $\Delta t$ $\endgroup$
    – ConvexHull
    May 1, 2023 at 18:44

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.