I am trying to implement the ADI scheme of Douglas and Rachford.

For $p(X,Z,t)$, there is:

$$ \begin{gathered} A=p^{n-1}+\Delta t_n\left[F_0\left(p^{n-1}, t_{n-1}\right)+F_1\left(p^{n-1}, t_{n-1}\right)+F_2\left(p^{n-1}, t_{n-1}\right)\right] \\ B-\alpha \Delta t_n F_1\left(B, t_n\right)=A-\alpha \Delta t_n F_1\left(p^{n-1}, t_{n-1}\right) \quad \quad(*) \\ C-\alpha \Delta t_n F_2\left(C, t_n\right)=B-\alpha \Delta t_n F_2\left(p^{n-1}, t_{n-1}\right) \quad \quad(**) \\ p^n=C, n=1, \ldots, N, \end{gathered} $$


$$ \begin{gathered} F_0(p, t)=\frac{\partial^2}{\partial X \partial Z}p \\ F_1(p, t)=-\frac{\partial}{\partial Z}p+\frac{1}{2} \frac{\partial^2}{\partial Z^2}p \\ F_2(p, t)=-\frac{\partial}{\partial X}p+\frac{1}{2} \frac{\partial^2}{\partial X^2}p \end{gathered} $$

I am confused with equations $(*)$ and $(**)$. How can I calculate the $B$ and $C$ if they are functions of themselves? I have checked other resources and the 2nd correction always depends on itself, as seen in the image below ($U^{m+1*}$ and $U^{m+1**}$ are functions of themselves). How do I go about calculating this? enter image description here

  • 1
    $\begingroup$ This seems to be an implicit method, meaning that these quantities are computed by solving a linear or nonlinear system of equations at each step. $\endgroup$
    – whpowell96
    Commented Dec 8, 2023 at 5:17

1 Answer 1


The purpose of ADI schemes is to separate some differential operators in order to make it easier to advance the solution in time with respect to what it would be with a fully implicit scheme, while still retaining some of the advantages of an implicit scheme (e.g. not being subject to the Courant-Friederich-Levy condition that you would have with an explicit scheme). With ADI schemes you still have to solve some linear/non linear systems of equations, but they are easier than then they would be if you directly applied a fully implicit scheme like backwards Euler. The typical example is heat equation where you can split the second order derivatives along the two/three directions and you end up solving only tridiagonal systems.

Unfortunately in your case you also have mixed second order derivatives and first order derivatives, hence I am not sure that directly applying ADI in this case helps a lot. Did you consider splitting away the first and mixed derivatives with a conventional strang splitting method, and apply the Douglas-Rachford scheme only to the the second order non-mixed derivatives? In this case you should solve the remaining parts of the equation (first and mixed derivatives) with another method. About the first order derivatives: you could use a method that is designed for hyperbolic problems and solve the X and Z components at once if an explicit method is suitable. I cannot help you with the mixed derivatives, I never solved a similar problem. I hope this answer provides you some valuable hints.


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.