From 4ce2b9734222891015e7bb63124e50c1efc5c52d Mon Sep 17 00:00:00 2001 From: bangerth Date: Sat, 2 Feb 2008 02:58:46 +0000 Subject: [PATCH] Add 2d output. Add a few sentences. git-svn-id: https://svn.dealii.org/trunk@15705 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/examples/step-31/doc/intro.dox | 23 +++- deal.II/examples/step-31/doc/results.dox | 107 ++++++++++++++++-- .../step-31/doc/step-31.2d.mesh-0.png | Bin 0 -> 716 bytes .../step-31/doc/step-31.2d.mesh-1.png | Bin 0 -> 1350 bytes .../step-31/doc/step-31.2d.mesh-2.png | Bin 0 -> 1916 bytes .../step-31/doc/step-31.2d.mesh-3.png | Bin 0 -> 2620 bytes .../step-31/doc/step-31.2d.mesh-4.png | Bin 0 -> 3954 bytes .../step-31/doc/step-31.2d.mesh-5.png | Bin 0 -> 5070 bytes .../step-31/doc/step-31.2d.solution.png | Bin 0 -> 14598 bytes 9 files changed, 118 insertions(+), 12 deletions(-) create mode 100644 deal.II/examples/step-31/doc/step-31.2d.mesh-0.png create mode 100644 deal.II/examples/step-31/doc/step-31.2d.mesh-1.png create mode 100644 deal.II/examples/step-31/doc/step-31.2d.mesh-2.png create mode 100644 deal.II/examples/step-31/doc/step-31.2d.mesh-3.png create mode 100644 deal.II/examples/step-31/doc/step-31.2d.mesh-4.png create mode 100644 deal.II/examples/step-31/doc/step-31.2d.mesh-5.png create mode 100644 deal.II/examples/step-31/doc/step-31.2d.solution.png diff --git a/deal.II/examples/step-31/doc/intro.dox b/deal.II/examples/step-31/doc/intro.dox index aaa90cd687..34a85e260b 100644 --- a/deal.II/examples/step-31/doc/intro.dox +++ b/deal.II/examples/step-31/doc/intro.dox @@ -445,8 +445,27 @@ direct solver such as UMFPACK inefficient: only for problem sizes of a few 10,000 to maybe 100,000 unknowns can a sparse decomposition be computed using reasonable time and memory resources. -SO WHAT TO DO HERE? +What we do in that case is to use an incomplete LU decomposition (ILU) as a +preconditioner, rather than actually computing complete LU factors. As it so +happens, deal.II has a class that does this: SparseILU. Computing the ILU +takes a time that only depends on the number of nonzero entries in the sparse +matrix (or that we are willing to fill in the LU factors, if these should be +more than the ones in the matrix), but is independent of the bandwidth of the +matrix. It is therefore an operation that can efficiently also be computed in +3d. On the other hand, an incomplete LU decomposition, by definition, does not +represent an exact inverse of the matrix $A$. Consequently, preconditioning +with the ILU will still require more than one iteration, unlike +preconditioning with the sparse direct solver. The inner solver will therefore +take more time when multiplying with the Schur complement, a tradeoff +unavoidable. + - +

Implementation

+ +Note anything here that would be particular about this program. + + +

The testcase

+Describe the testcase we are dealing with here. diff --git a/deal.II/examples/step-31/doc/results.dox b/deal.II/examples/step-31/doc/results.dox index b54aab4203..f1248247be 100644 --- a/deal.II/examples/step-31/doc/results.dox +++ b/deal.II/examples/step-31/doc/results.dox @@ -2,6 +2,59 @@

Results

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ @image html step-31.2d.mesh-0.png + + @image html step-31.2d.mesh-1.png +
+ @image html step-31.2d.mesh-2.png + + @image html step-31.2d.mesh-3.png +
+ @image html step-31.2d.mesh-4.png + + @image html step-31.2d.mesh-5.png +
+ @image html step-31.2d.mesh-6.png + +
+ +@image html step-31.2d.solution.png + + + + + Output in 3d: @code Refinement cycle 0 @@ -61,23 +114,57 @@ Refinement cycle 6 15 CG Schur complement iterations for pressure. @endcode +Note that the number of (outer) iterations does not increase as we refine the +mesh. + Compute times for each iteration alone: seconds, seconds, 1 minute, 8 minutes, 33 minutes, 3h37, 24h55 Pictures -@image html step-31.3d.mesh-0.png - -@image html step-31.3d.mesh-1.png + + + + + + + + + + + + + + + + + + + + + + + + +
+ @image html step-31.3d.mesh-0.png + + @image html step-31.3d.mesh-1.png +
+ @image html step-31.3d.mesh-2.png + + @image html step-31.3d.mesh-3.png +
+ @image html step-31.3d.mesh-4.png + + @image html step-31.3d.mesh-5.png +
+ @image html step-31.3d.mesh-6.png + +
-@image html step-31.3d.mesh-2.png - -@image html step-31.3d.mesh-3.png +@image html step-31.3d.solution.png -@image html step-31.3d.mesh-4.png -@image html step-31.3d.mesh-5.png -@image html step-31.3d.mesh-6.png -@image html step-31.3d.solution.png diff --git a/deal.II/examples/step-31/doc/step-31.2d.mesh-0.png b/deal.II/examples/step-31/doc/step-31.2d.mesh-0.png new file mode 100644 index 0000000000000000000000000000000000000000..ddf20d89d1f64c7fdca985affc986d45fbd2f9d9 GIT binary patch literal 716 zcmeAS@N?(olHy`uVBq!ia0y~yVAKV&eFT66gYWSqDjc?PRtcNU*HH zF&(CwAtZW143Kl))5S5Q;?~A4j6f_%F8=D7J!{%oOS$bcQ!VGaub3EXzdmtm`s&PG_vc2f zVLH`%LTk~Iqm*I0%(I`r6<@iW`6Ti6QzNI|H^2VMR!%wn>VMSP&yOEoNfHgvb0OaY zFpocFPYatkRenaK>lE&Zp)Q`?88$)%M z``XDNZiR zEGSXXNJ%ZrOir~e$jdECEZ5|kdO2h(&>T6CIR(X59+^R@#ZLL9c`2EB=}!3-48{hA z73OBz2HFN4Kd-0)RmwnB`lObn<}f&>jc?PRtcNU*HH zF&(CwAtZW13Bc!NX4zUbN1%Fau8_MoIGK_(t?&93a&}X`x`XpG)?jF>zCGw zYb^h8S|LmPL)snh%5<|&k`c%EJ@T=sMJvVOa%@b$p;u#;_ z;^wSh^+oD>+^+lo7jxY_DQXug%eQyal#?2hW?EcZny6vy+IYf$(l680m;O`VZI4+O z_I33aztvOMWyeoFtu3n;YV}3fCN?zmYhTS@>CCA4g-@@&W)@htH$~>?&!DBo$J;;7 zE;e z)TE4ur7ovUR4yKRZPgPdvQ+6;?aaywkI~J_KTTBJ9$mjmPChlwf`@75?)~fE zi?i%nR~s6*^qw;Zimc^8r)2DyjQKx@5 z-{xBB+tpo8`G#M` zw|86refI5@SK6{*7dxXTX^;J<{<~9VQBynB^6$Ps&)m|Q9IkI&uf=079iQR5+%A+% zTdyZ>5$oRCao&Gs=c27$CR1mgRAEgrSP}pEDiM`loJu~U9&UP@+Ox>J4ygRy~Og}Irwfwn=%&nv1xl`>G3KB;A? pISh^|`AMm|MtTMct^vVrx`uj2T=#CC$Oo!p@O1TaS?83{1OUL2eb)d0 literal 0 HcmV?d00001 diff --git a/deal.II/examples/step-31/doc/step-31.2d.mesh-2.png b/deal.II/examples/step-31/doc/step-31.2d.mesh-2.png new file mode 100644 index 0000000000000000000000000000000000000000..b4619e230d97eae2e46752c62d8da059453f171b GIT binary patch literal 1916 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 literal 0 HcmV?d00001 diff --git a/deal.II/examples/step-31/doc/step-31.2d.mesh-4.png b/deal.II/examples/step-31/doc/step-31.2d.mesh-4.png new file mode 100644 index 0000000000000000000000000000000000000000..0aaf74b888ba0824abf27b5a9890e2004f6c5b76 GIT binary patch literal 3954 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 JmnL2b{|C&Gi_ic7 literal 0 HcmV?d00001 diff --git a/deal.II/examples/step-31/doc/step-31.2d.mesh-5.png b/deal.II/examples/step-31/doc/step-31.2d.mesh-5.png new file mode 100644 index 0000000000000000000000000000000000000000..357bc6aee0151666c079e707055b73d31077046a GIT binary patch literal 5070 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 Zh)YYz(EOb0^S{Oc^t6q&2pUc?{{=)XrXv6V literal 0 HcmV?d00001 diff --git a/deal.II/examples/step-31/doc/step-31.2d.solution.png b/deal.II/examples/step-31/doc/step-31.2d.solution.png new file mode 100644 index 0000000000000000000000000000000000000000..f21edb513669c90479baf7d95844291ce0dbf44d GIT binary patch literal 14598 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

IOLqx^pV*_8ju5)wXw_gV-FR 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