Examine a dynamic 2D heat equation $\dot{u} = \Delta u$ with zero boundary temperature. A standard finite difference approach is used on a rectangle using a $n\times n$ grid. For the resulting linear systems a banded Cholesky solver is used. Compare the three methods explicit, implicit and Crank-Nicolson for the time stepping.

  • Explicit method

$$ \begin{gathered} \frac{u_{i+1,j} - u_{i,j}}{\Delta t} = \kappa \frac{u_{i,j-1} - 2u_{i,j} + u_{i,j+1}}{(\Delta x)^2} \\ u_{i+1,j} = u_{i,j} + \frac{\kappa \Delta t}{(\Delta x)^2}(u_{i,j-1} - 2u_{i,j} + u_{i,j+1})\\ \vec{u}_{i+1} = \vec{u}_i - \kappa \Delta t \textbf{A}_n \cdot \vec{u}_{i}\\ \end{gathered} $$

  • Implicit method

$$ \begin{gathered} \frac{u_{i+1,j} - u_{i,j}}{\Delta t} = \kappa \frac{u_{i+1,j-1} - 2u_{i+1,j} + u_{i+1,j+1}}{(\Delta x)^2} \\ \vec{u}_{i+1} = \vec{u}_i - \kappa \Delta t \textbf{A}_n \cdot \vec{u}_{i+1}\\ u_i = (\mathbb{I}_n + \kappa \Delta t \textbf{A}_n)^{-i}\cdot \vec{u}_0 \end{gathered} $$

  • Crank-Nicolson

$$ \begin{gathered} \frac{u_{i+1, j}-u_{i,j}}{\kappa \Delta t} = \frac{u_{i,j-1} - 2u_{i,j} + u_{i,j + 1}}{2(\Delta x)^2} + \frac{u_{i+1,j-1} - 2u_{i+1,j} + u_{i+1,j + 1}}{2(\Delta x)^2}\\ \vec{u}_{i+1} - \vec{u}_i = -\frac{\kappa \Delta t}{2}(\textbf{A}_n \cdot \vec{u}_{i+1} + \textbf{A}_n \cdot \vec{u}_i) \end{gathered} $$

Here is the question:

Does the implicit method require the least memory?

Here is my proposition for an answer:

I would say that the statement if FALSE

The implicit method requires more computational effort to give an answer, because the matrix $\textbf{A}_n$ needs to be inverted. However, I would say that this is not the reason why the statement is false: for the implicit method there is $\textbf{no extra/less storage needed}$ (compared to the explicit method for example) because there is no extra data generated from the computation (for example no other matrix generated). Is the answer correct as well as the reasoning behind it?

N.B. This question has been originally asked in Mathematics and has been posted here following comments


You seem to have given the 1D equations for the discretizations, even though the problem is in 2D.

Regardless, the explicit method requires the least memory since you don't even have to form a matrix to compute the solution at the next time step. If you have the solution vector at time $t_i$, you can apply simple stencil operations and directly obtain the solution at time $t_{i+1}$, without forming a matrix. Your storage requirement will be just two solution vectors: one for the current solution, and one for the solution at the next time step.


Your Answer

By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy

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