<h1>Results</h1>
-There is not much to be said about the results of this program, apart
-from that they look nice. All images were made using GMV from the
-output files that the program wrote to disk. The first picture shows
-the displacement as a vector field, where one vector is shown at each
-vertex of the grid:
-
-
-@image html step-8.vectors.png
-
-
-You can clearly see the sources of $x$-displacement around $x=0.5$ and
-$x=-0.5$, and of $y$-displacement at the origin. In this example, we have
-used the GMV program to produce a vector plot by telling it that the
-two solution components, $x$-displacement and $y$-displacement, are in
-fact not two independent scalar fields, but the components of a vector
-field. Depending on what graphical file format we use, we could as
-well have specified this in the program already and then written into
-the output file. The step-22 shows how to do this in
-the output_results() function.
-
-The next image shows the final grid after eight steps of refinement:
-
-
-@image html step-8.grid.png
-
-
-
-Finally, the $x$-displacement and $y$-displacement are displayed separately:
-
-
+There is not much to be said about the results of this program, other than
+that they look nice. All images were made using Visit from the
+output files that the program wrote to disk. The first two pictures show
+the $x$- and $y$-displacements as a scalar components:
<TABLE WIDTH="100%">
<tr>
</table>
+You can clearly see the sources of $x$-displacement around $x=0.5$ and
+$x=-0.5$, and of $y$-displacement at the origin. The next image shows the
+final grid after eight steps of refinement:
+
+@image html step-8.grid.png
+
+
+What one frequently would like to do is to show the displacement as a vector
+field, i.e., show vectors that for each point show the direction and magnitude
+of displacement. Unfortunately, that's a bit more involved. To understand why
+this is so, remember that we have just defined our finite element as a
+collection of two components (in <code>dim=2</code> dimensions). Nowhere have
+we said that this is not just a pressure and a concentration (two scalar
+quantities) but that the two components actually are the parts of a
+vector-valued quantity, namely the displacement. Absent this knowledge, the
+DataOut class assumes that all individual variables we print are separate
+scalars, and Visit then faithfully assumes that this is indeed what it is. In
+other words, once we have written the data as scalars, there is nothing in
+Visit that allows us to paste these two scalar fields back together as a
+vector field. Where we would have to attack this problem is at the root,
+namely in <code>ElasticProblem::output_results</code>. We won't do so here but
+instead refer the reader to the step-22 program where we show how to do this
+for a more general situation. That said, we couldn't help generating the data
+anyway that would show how this would look if implemented as discussed in
+step-22. The vector field then looks like this (Visit randomly selects a few
+hundred vertices from which to draw the vectors; drawing them from each
+individual vertex would make the picture unreadable):
+
+@image html step-8.vectors.png
+
-It should be noted that intuitively one would have expected the
+We note that one may have intuitively expected the
solution to be symmetric about the $x$- and $y$-axes since the $x$- and
$y$-forces are symmetric with respect to these axes. However, the force
considered as a vector is not symmetric and consequently neither is