<a name="extensions"></a>
<h3>Possibilities for extensions</h3>
+There are a number of areas where this program can be improved. Three of them
+are listed below. All of them are, in fact, addressed in a tutorial program
+that forms the continuation of the current one: step-43.
+
<h4>Solvers</h4>
3d computation took almost two days for 800 time steps. The reason why it
isn't faster than this is twofold. First, we rebuild the entire matrix in
every time step, although some parts such as the $B$, $B^T$, and $M^S$ blocks
-never change.
+never change.
Second, we could do a lot better with the solver and
preconditioners. Presently, we solve the Schur complement $B^TM^u(S)^{-1}B$
use it as a cheap preconditioner in the future. We could do better even by
using the SparseDirectUMFPACK class that produces not only an incomplete, but
a complete decomposition of the matrix, which should yield an even better
-preconditioner.
+preconditioner.
Finally, why use the approximation $B^T (\textrm{diag}(M^u(S)))^{-1} B$ to
precondition $B^T M^u(S)^{-1} B$? The latter matrix, after all, is the mixed
<h4>Time stepping</h4>
-In the introduction we have identified the time step restriction
+In the introduction we have identified the time step restriction
@f[
\triangle t_{n+1} \le \frac h{|\mathbf{u}^{n+1}(\mathbf{x})|}
@f]
certainly worthwhile; one starting point for such an approach is the paper by
Zhangxin Chen, Guanren Huan and Baoyan Li: <i>An improved IMPES method for
two-phase flow in porous media</i>, Transport in Porous Media, 54 (2004),
-pp. 361--376. There are certainly many other papers on this topic as well, but
+pp. 361—376. There are certainly many other papers on this topic as well, but
this one happened to land on our desk a while back.