From 14919b14e4cbeb3d64db87f02f3e4b52136f8197 Mon Sep 17 00:00:00 2001
From: wolf
+If we run the program as is, we get this output:
+
+Let us start with the pressure: it is highest at the left and lowest at the
+right, so flow will be from left to right. In addition, though hardly visible
+in the graph, we have chosen the pressure field such that the flow left-right
+flow first channels towards the center and then outward again. Consequently,
+the x-velocity has to increase to get the flow through the narrow part,
+something that can easily be seen in the left image. The middle image
+represents inward flow in y-direction at the left end of the domain, and
+outward flow in y-directino at the right end of the domain.
+
+As an additional remark, note how the x-velocity in the left image is only
+continuous in x-direction, whereas the y-velocity is continuous in
+y-direction. The flow fields are discontinuous in the other directions. This
+very obviously reflects the continuity properties of the Raviart-Thomas
+elements, which are, in fact, only in the space H(div) and not in the space
+H1. Finally, the pressure field is completely discontinuous, but
+that should not surprise given that we have chosen
+The program offers two obvious places where playing and observing convergence
+is in order: the degree of the finite elements used (passed to the constructor
+of the
+If one does this, one finds the following pattern for the L2 error
+in the pressure variable:
+Results
-convergence for h and p
+Output of the program and graphical visualization
+
+
+The fact that the number of iterations is so small, of course, is due to good
+(but expensive!) preconditioner we have developed. To get confidence in the
+solution, let us take a look at it. The following three images show (from left
+to right) the x-velocity, the y-velocity, and the pressure (click on the images
+for larger versions):
+
+
+
+
+examples/step-20> make run
+============================ Remaking Makefile.dep
+==============debug========= step-20.cc
+============================ Linking step-20
+============================ Running step-20
+Number of active cells: 64
+Total number of cells: 85
+Number of degrees of freedom: 208 (144+64)
+10 CG Schur complement iterations to obtain convergence.
+Errors: ||e_p||_L2 = 0.178055, ||e_u||_L2 = 0.0433435
+
FE_DGQ(0)
as
+the finite element for that solution component.
+Convergence
+
+MixedLaplaceProblem
class from main()
), and
+the refinement level (determined in
+MixedLaplaceProblem::make_grid_and_dofs
). What one can do is to
+change these values and observe the errors computed later on in the course of
+the program run.
+
+
+
+The theoretically expected convergence orders are very nicely reflected by the
+experimentally observed ones indicated in the last row of the table.
+
+
+
+
+ Finite element order
+
+
+
+ Refinement level
+ 0
+ 1
+ 2
+
+
+
+ 0 1.45344 0.0831743 0.0235186
+
+
+
+ 1 0.715099 0.0245341 0.00293983
+
+
+
+ 2 0.356383 0.0063458 0.000367478
+
+
+
+ 3 0.178055 0.00159944 4.59349e-05
+
+
+
+ 4 0.0890105 0.000400669 5.74184e-06
+
+
+
+ 5 0.0445032 0.000100218 7.17799e-07
+
+
+
+ 6 0.0222513 2.50576e-05 9.0164e-08
+
+
+ O(h) O(h2 O(h3)
+
+One can make the same experiment with the L2 error +in the velocity variables: +
+ | Finite element order | +||
Refinement level | +0 | +1 | +2 | +
0 | 0.367423 | 0.127657 | 5.10388e-14 | +
1 | 0.175891 | 0.0319142 | 9.04414e-15 | +
2 | 0.0869402 | 0.00797856 | 1.23723e-14 | +
3 | 0.0433435 | 0.00199464 | 1.86345e-07 | +
4 | 0.0216559 | 0.00049866 | 2.72566e-07 | +
5 | 0.010826 | 0.000124664 | 3.57141e-07 | +
6 | 0.00541274 | 3.1166e-05 | 4.46124e-07 | +
O(h) | O(h2 | O(h3) | +