From 1b17921572e236acf651c8b76d1e3040f8477fbb Mon Sep 17 00:00:00 2001
From: wolf
Date: Mon, 12 Apr 2004 16:37:38 +0000
Subject: [PATCH] Mostly finish step-17.
git-svn-id: https://svn.dealii.org/trunk@8991 0785d39b-7218-0410-832d-ea1e28bc413d
---
.../step-17.data/results.html | 81 ++++++++++++++++--
.../step-17.data/solution-4-3d-partition.png | Bin 0 -> 23990 bytes
.../step-17.data/solution-4-3d-ux.png | Bin 0 -> 85345 bytes
3 files changed, 76 insertions(+), 5 deletions(-)
create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-17.data/solution-4-3d-partition.png
create mode 100644 deal.II/doc/tutorial/chapter-2.step-by-step/step-17.data/solution-4-3d-ux.png
diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-17.data/results.html b/deal.II/doc/tutorial/chapter-2.step-by-step/step-17.data/results.html
index 220fdd537b..029b72eacc 100644
--- a/deal.II/doc/tutorial/chapter-2.step-by-step/step-17.data/results.html
+++ b/deal.II/doc/tutorial/chapter-2.step-by-step/step-17.data/results.html
@@ -76,16 +76,22 @@ Cycle 15:
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.
-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:
@@ -136,3 +142,68 @@ then lead to slightly different mesh cells tagged for refinement, and larger
differences in subsequent steps. The solution will always look very similar,
though.
+
+
+Finally, here are some results for a 3d simulation. You can repeat these by
+first changing
+
+ ElasticProblem<2> elastic_problem;
+
+to
+
+ ElasticProblem<3> elastic_problem;
+
+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):
+
+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.
+
+
+
+
+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):
+
+
+
+
+
+
+
+
+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.
+
diff --git a/deal.II/doc/tutorial/chapter-2.step-by-step/step-17.data/solution-4-3d-partition.png b/deal.II/doc/tutorial/chapter-2.step-by-step/step-17.data/solution-4-3d-partition.png
new file mode 100644
index 0000000000000000000000000000000000000000..a7fc2dcd92740a211d08c68724da9521eba4ec0d
GIT binary patch
literal 23990
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 |