Number of active cells: 987394
Number of degrees of freedom: 1994226 (by partition: 253276+249068+247430+248402+248496+251380+248272+247902)
Solver converged in 1760 iterations.
+Cycle 16:
+ Number of active cells: 1867477
+ Number of degrees of freedom: 3771884 (by partition: 468452+474204+470818+470884+469960+
+471186+470686+475694)
+ Solver converged in 2251 iterations.
</pre></code>
</p>
<p>
-As can be seen, we can easily get to almost two million unknowns. In fact, the
+As can be seen, we can easily get to almost four million unknowns. In fact, the
code's runtime with 8 processes was less than 7 minutes up to (and including)
-cycle 14, and 14 minutes including the last step. This, if the debug flag in
-the Makefile was changed to "off", i.e. "optimized". Here is some output
-generated in the 12th cycle of the program, i.e. with roughly 300,000
-unknowns:
+cycle 14, and 14 minutes including the second to last step. I lost the timing
+information for the last step, though, but you get the idea. All this is if
+the debug flag in the Makefile was changed to "off", i.e. "optimized". Here is
+some output generated in the 12th cycle of the program, i.e. with roughly
+300,000 unknowns:
</p>
<p align="center">
differences in subsequent steps. The solution will always look very similar,
though.
</p>
+
+<p>
+Finally, here are some results for a 3d simulation. You can repeat these by
+first changing
+<code><pre>
+ ElasticProblem<2> elastic_problem;
+</pre></code>
+to
+<code><pre>
+ ElasticProblem<3> elastic_problem;
+</pre></code>
+in the main function, and then in the Makefile, change the reference to the 2d
+libraries to their 3d counterparts. If you then run the program in parallel,
+you get something similar to this (this is for a job with 16 processes):
+<code><pre>
+Cycle 0:
+ Number of active cells: 512
+ Number of degrees of freedom: 2187 (by partition: 114+156+150+114+114+210+105+102+120+120+96+123+141+183+156+183)
+ Solver converged in 27 iterations.
+Cycle 1:
+ Number of active cells: 1604
+ Number of degrees of freedom: 6549 (by partition: 393+291+342+354+414+417+570+366+444+288+543+525+345+387+489+381)
+ Solver converged in 42 iterations.
+Cycle 2:
+ Number of active cells: 4992
+ Number of degrees of freedom: 19167 (by partition: 1428+1266+1095+1005+1455+1257+1410+1041+1320+1380+1080+1050+963+1005+1188+1224)
+ Solver converged in 65 iterations.
+Cycle 3:
+ Number of active cells: 15485
+ Number of degrees of freedom: 56760 (by partition: 3099+3714+3384+3147+4332+3858+3615+3117+3027+3888+3942+3276+4149+3519+3030+3663)
+ Solver converged in 96 iterations.
+Cycle 4:
+ Number of active cells: 48014
+ Number of degrees of freedom: 168762 (by partition: 11043+10752+9846+10752+9918+10584+10545+11433+12393+11289+10488+9885+10056+9771+11031+8976)
+ Solver converged in 132 iterations.
+Cycle 5:
+ Number of active cells: 148828
+ Number of degrees of freedom: 492303 (by partition: 31359+30588+34638+32244+30984+28902+33297+31569+29778+29694+28482+28032+32283+30702+31491+28260)
+ Solver converged in 179 iterations.
+Cycle 6:
+ Number of active cells: 461392
+ Number of degrees of freedom: 1497951 (by partition: 103587+100827+97611+93726+93429+88074+95892+88296+96882+93000+87864+90915+92232+86931+98091+90594)
+ Solver converged in 261 iterations.
+</pre></code>
+</p>
+
+<p>
+The last step, going up to 1.5 million unknowns, takes about 55 minutes with
+16 processes on 8 dual-processor machines. The graphical output generated by
+this job is rather large (cycle 5 already prints around 82 MB of GMV data), so
+we contend ourselves with showing output from cycle 4 (again, clicking on the
+picture gives a version in original size):
+</p>
+
+<p align="center">
+ <a href="step-17.data/solution-4-3d-partition.png" target="_top"><img
+ src="step-17.data/solution-4-3d-partition.png" alt="uy" width="45%"></a>
+ <a href="step-17.data/solution-4-3d-ux.png" target="_top"><img
+ src="step-17.data/solution-4-3d-ux.png" alt="ux" width="45%"></a>
+</p>
+
+<p>
+The left picture shows the partitioning of the cube into 16 processes, whereas
+the right one shows the x-displacement along two cutplanes through the cube.
+</p>