I am interested in solving ODE systems of the form \begin{align} \frac{\partial \vec{u}}{\partial t} = F(\vec{u}) \end{align} where $F$ is a nonlinear operator, $\vec{u}$ is a vector valued function of $t$, and we have initial conditions $\vec{u}(0) = \vec{u}_0$. I am specifically interested in equations of this form that come from (finite element) spatial discretizations of initial-boundary value problems involving systems of PDEs.
An accurate way of doing this would be to further discretize $F(\vec{u})$ and take small time steps with high order, but this may be too costly for the application. Instead, one may perform the ``operator split'' \begin{align} F(\vec{u}) = A(\vec{u}) + B(\vec{u}), \end{align} and solve the following two subproblems in an alternating fashion for a single time step $t \mapsto t + \Delta t$: \begin{align} \begin{cases} \frac{\partial \vec{v}}{\partial t} = A(\vec{v}), \\ \frac{\partial \vec{w}}{\partial t} = B(\vec{w}). \end{cases} \end{align} To start, the initial condition $\vec{u_0}$ is used to solve the first equation for $\vec{v_1}$, and then $\vec{v_1}$ is used as a condition to solve the second eqution for $\vec{w_1}$. We then set $\vec{u_1} := \vec{w_1}$, and then repeat this process to obtain $\vec{u_2}, \vec{u_3}, ... $ at each time step. This operator splitting method is well known to be first-order accurate, i.e., the operator error grows like $\mathcal{O}(\Delta t)$. The advantage here is the subproblems should somehow be easier to solve.
I am somewhat familiar with CFL conditions for explicit time-stepping schemes. They basically tell you how small you need to make your time step, for a specific problem, relative to your mesh size, and are generally only applicable for simple (linear) problems. For implicit time-stepping schemes applied to simple (linear) problems, one can expect unconditional stability, allowing for large time steps to be used.
My questions are the following:
- When solving the two subproblems $\vec{v}_t = A\vec{v}$ and $\vec{w}_t = B \vec{w}$ in an alternating fashion, is one required to use the same time-integration scheme for both subproblems? For example, would I be able solve the first equation for time $v_{t_{n+1}}$ using a first-order implicit method, and then the second equation for time $w_{t_{n+1}}$ using a second-order explicit method?
- Do the time-step sizes for the two subproblems need to be the same? Or could one, for example, compute $v_{t_{n+1}}$ using the entire $\Delta t$ time step, and compute $w_{t_{n+1}}$ using four smaller $\frac{\Delta t}{4}$ time steps? Isn't this what higher order operator splitting basically is? Also, is this how you would ensure minimum step-size stability if one of the subproblems was "stiff"?
- If the two subproblems are nonlinear, how does one determine a good timestep size for each problem to guarantee stability?
- Is there any known relationship between the timestep size needed to guarantee stability of the original problem and timestep sizes needed to guarantee stability for the two subproblems?
- Should I probably be using second-order and higher operator splitting schemes, and if so, how do I decide which one to use (e.g., from this list http://www.asc.tuwien.ac.at/~winfried/splitting/index.php?rc=0&ab=strang-ab&name=Strang)?
- Does it matter which subproblem you solve first?
Partial answers or references to literature are appreciated.