I have a 3D diffusion equation that I want to solve using a time splitting (2D+1D). Assume that $A$ is the 2D discrete diffusion operator and $B$ is the 1D discrete diffusion operator.

I want to use a STRANG splitting to ensure a global 2nd order of precision : \begin{equation} \frac{\partial f}{\partial t}=\frac{1}{2}Af\\ \frac{\partial f}{\partial t}=Bf\\ \frac{\partial f}{\partial t}=\frac{1}{2}Af\\ \end{equation} And for each time integration, I want to apply the BDF2 implicit formula to ensure stability and a local 2nd order precision: \begin{equation} \frac{\partial f}{\partial t}\approx \frac{f^{n+1}-\frac{4}{3}f^n+\frac{1}{3}f^{n-1}}{\frac{2}{3}\Delta t} \end{equation} My question is : for the time iteration $n\Delta t$, what is the $f^{n-1}$ of each stage of the splitting ? Is it the state of $f$ at the previous time iteration or the previous splitting stage ?

To be more literal, do I follow this algorithm ? \begin{equation} f0,f1\rightarrow(\frac{\Delta t}{2} A) f21\\ f1,f21 \rightarrow(\Delta t B) f22\\ f21,f22\rightarrow(\frac{\Delta t}{2} A) f2 \end{equation} and for the following iteration we initialize $f0=f22$ and $f1=f2$.

Or this one ? \begin{equation} f0,f1\rightarrow(\frac{\Delta t}{2}A) f21\\ f0,f21 \rightarrow(\Delta t B) f22\\ f0,f22\rightarrow(\frac{\Delta t}{2} A) f2\\ \end{equation} and for the following iteration we initialize $f0=f1$ and $f1=f2$.

Is there another way to ensure an unconditionnaly stable time integration splitting with a global and local 2nd order ?

  • 1
    $\begingroup$ Is it the state of 𝑓 at the previous time iteration or the previous splitting stage ? It's the output of the previous splitting stage. $\endgroup$ Sep 23, 2020 at 6:47

1 Answer 1


If you set $f_{n-1}$ to the previous result of the BDF integration (i.e. without any influence from the other terms integrated during the splitting process in-between to successive calls to the BDF method), I think the intermediate split integration of the other terms will act as a discontinuity or, worse, you will just "forget" the integration that have been done in between the two calls to the BDF method. The best bet is just to restart the BDF method using a one-step method, which may make it much less efficient... The article "A note on splitting errors for advection-reaction equations" by Hundsdorfer and Verwer also treats this problem and shows that it can lead to an $O(1)$ global error...

(and if I am mistaken, please explain in a comment ;) )


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.