Numerical methods for solving PDEs (or ODEs) fall into two broad categories: explicit and implicit methods. Implicit methods allow larger stable timesteps but require more work per step. For hyperbolic PDEs, the common wisdom is that implicit methods usually do not pay off because the use of timesteps larger than those allowed by the CFL condition leads to very inaccurate results. However, implicit methods are used in some cases. For a given application, how should one choose whether to use an explicit or implicit method?
1 Answer
The central question is which physical processes (waves or source terms) have time scales that you are interested in resolving and which you would prefer to step over. If you are not interested in the fastest time scale in the system, then the equations are called "stiff". Hyperbolic conservation laws are typically written as first-order systems
$$ u_t + \nabla\cdot F(u) = G(u,\nabla u,...) $$
where $u$ contains conserved variables, $F$ is the flux, and $G$ is called the "source term". Note that with this terminology, the flux $F$ does not contain derivatives, therefore diffusive and dispersive terms must go in $G$. It is quite common to use implicit or semi-implicit integration when source terms are stiff, as with many chemical reaction problems and when diffusion or dispersion is present. Chemical reaction can usually be implicitly solved locally in each element since it is not coupled to neighboring cells.
To compute wave speeds, we examine the eigenvalues of the flux Jacobian $A = [\partial F/\partial u]$. If we decide that the phase of certain waves is not of physical interest, then we may want to step over them.
For example, if you are simulating the long-time evolution of an ocean, you may not be interested in surface gravity waves (e.g. tsunamis). Unfortunately, changing the wave speed (either slowing it down to use explicit methods or speeding it up to a "rigid lid" model that can use a projection) changes the physics by changing the way vortices propagate. Vortices in the ocean are an effect where the gravity wave is almost balanced with convection, but not quite.
Another example is compressible Euler, e.g. airflow through a data center. The acoustic wave speed is much faster than convection and only the latter is important for heat transfer. If you are not interested in acoustics, you may want to use an implicit method.
The relative efficiency of an implicit method is dependent on the cost to solve the algebraic systems at each step/stage compared to the step size that can be used with explicit methods. Solving such algebraic systems efficiently is an active topic of research. (Make another question and I will answer it and reference from here.)
You may also want to use implicit methods if:
- your equations have meaningful steady states that you want to explore directly, perhaps with to characterize stability
- you are solving inverse/data assimilation problems involving long time history
- you want to circumvent order barriers to use very high order time integration methods with certain stability properties
- you are using space-time adaptive methods
- you are using a spatial discretization that already requires solving an algebraic system (e.g. continuous finite element methods with consistent mass matrix)