16
$\begingroup$

Given an evolution PDE

$$u_t = Au + Bu$$

where $A,B$ are (possibly nonlinear) differential operators that don't commute, a common numerical approach is to alternate between solving

$$u_t = Au$$

and

$$u_t = Bu.$$

The simplest implementation of this is known as Godunov splitting and is 1st-order accurate. Another well-known approach, known as Strang splitting, is 2nd-order accurate. Do higher order operator splitting methods (or alternative multiphysics discretization approaches) exist?

$\endgroup$
  • 1
    $\begingroup$ Are the terms stiff or non-stiff? Do you have a function that applies A and B, or do you only have an algorithm that advances the state from $t^n$ to $t^{n+1}$? In the case where one is stiff and one is non-stiff, there are many interesting methods. $\endgroup$ – Jed Brown Dec 2 '11 at 5:49
7
$\begingroup$

It was my understanding that the BCH formula was a systematic way to approximate the matrix exponential of two non-commutative matrices.

$\endgroup$
  • $\begingroup$ But doesn't that lead to complex terms even when the PDE is real? Do people use it for higher than 2nd order discretization? $\endgroup$ – David Ketcheson Nov 30 '11 at 14:47
  • 1
    $\begingroup$ Not from my memory (or the webpage). It leads to a lot of commutators. In quantum many-body, there are nice ways of simplifying these expressions. $\endgroup$ – Matt Knepley Nov 30 '11 at 19:06
7
$\begingroup$

If you consider general operators A and B and if you only want to make positive time steps (which is what you usually require when solving parabolic problems), there is an order barrier of 2, i.e., using any kind of splitting, you cannot obtain a rate of convergence higher than two. An elementary proof is given in a recent paper by S. Blanes and F. Casas, http://www.gicas.uji.es/Fernando/MyPapers/2005APNUM.pdf .

However, there are several ways out if you know a little bit more about your problem:

  • Assume that you can solve your equations backward in time (which is common for, e.g., Schrödinger equations), then there are many splittings available, see the book "Geometric Numerical Integration" by Hairer, Lubich, and Wanner.
  • If your operators generate analytic semigroups, i.e., you can insert complex values for t (typical for parabolic equations), it was recently observed that you can obtain higher order splittings by going into the complex plane. The first articles in that direction are by E. Hansen and A. Ostermann, http://www.maths.lth.se/na/staff/eskil/dataEskil/articles/Complex.pdf , and F. Castella, P. Chartier, S. Descombes, and G. Vilmart. The choice of complex splittings that are "optimal" in some sense is a topic of current research, you can find several papers on the topic on arxiv.

Summing up: If you put in some assumptions on your problem, you can get something, but if not, then order 2 is the maximum.

PS.: I had to take the link to the Castella et al-paper out due to spam prevention, but you can easily find it on google.

$\endgroup$
5
$\begingroup$

The CCSE group at LBNL have recently used Spectral Deferred Correction (SDC) methods in a low mach number flow with complex chemistry. They compare the SDC results with Strang splitting, and the results are very promising.

Here is a draft paper with the details: A Deferred Correction Coupling Strategy for Low Mach Number Flow with Complex Chemistry

Note that the SDC scheme is an iterative scheme that converges to a high-order accurate collocation solution, but it is built from first order methods.

$\endgroup$
2
$\begingroup$

Splitting error can, at least in principle, be reduced by spectral deferred correction methods. However, this seems to be an area of active research and not really something ready for general use.

$\endgroup$
2
$\begingroup$

A new resource for high-order splitting schemes that lists quite a few can be found here:

http://www.asc.tuwien.ac.at/~winfried/splitting/

$\endgroup$

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.