</table>
+<h3> Results in 3d </h3>
+
+The same thing can of course be done in 3d by changing the template
+parameter to the BoussinesqFlowProblem object in <code>main()</code>
+from 2 to 3. Visualizing the temperature isocontours at time steps 0,
+50, 100, 150, 200, 300, 400, 500, 600, 700, and 800 yields the
+following plots:
+
+<table align="center" border="1" cellspacing="3" cellpadding="3">
+ <tr>
+ <td>
+ @image html "step-31.3d.solution.00.png" "" width=22%
+ </td>
+ <td>
+ @image html "step-31.3d.solution.01.png" "" width=22%
+ </td>
+ <td>
+ @image html "step-31.3d.solution.02.png" "" width=22%
+ </td>
+ <td>
+ @image html "step-31.3d.solution.03.png" "" width=22%
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ @image html "step-31.3d.solution.04.png" "" width=22%
+ </td>
+ <td>
+ @image html "step-31.3d.solution.05.png" "" width=22%
+ </td>
+ <td>
+ @image html "step-31.3d.solution.06.png" "" width=22%
+ </td>
+ <td>
+ @image html "step-31.3d.solution.07.png" "" width=22%
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ @image html "step-31.3d.solution.08.png" "" width=22%
+ </td>
+ <td>
+ @image html "step-31.3d.solution.09.png" "" width=22%
+ </td>
+ <td>
+ @image html "step-31.3d.solution.10.png" "" width=22%
+ </td>
+ <td>
+ </td>
+ </tr>
+</table>
+
+That the first picture looks like three hedgehogs stems from
+the fact that our scheme essentially projects the source times the
+first time step size onto the mesh to obtain the temperature field in
+the first time step. Since the source function is discontinuous, we
+need to expect over- and undershoots from this project. This is in
+fact what happens (it's easier to check this in 2d) and leads to the
+crumpled appearance of the isosurfaces.
+
<h3> Numerical experiments to determine optimal parameters </h3>