things slightly worse, we may also have to deal with the fact that one
side or the other may be refined, leaving us with the need to
integrate over parts of a face. Take a look at the implementation
-below on how to deal with this.
+below on how to deal with this.
As an additional complication, the matrix entries that result from this term
need to be added to the sparsity pattern of the matrix somehow. This, however,
coarse mesh cells — but this is a contradiction to the
assumption stated at the end of the first section of this
introduction.
+
+
+
+<h3>The testcase</h3>
+
+We will consider the following situation as a testcase:
+
+@image html step-46.layout.png
+
+The fixed boundary at the bottom implies $\mathbf u=0$, and we also
+prescribe Dirichlet conditions for the flow at the top so that we get
+inflow at the left and outflow at the right. At the left and right
+boundaries, no boundary conditions are imposed explicitly for the
+flow, yielding the implicit no-stress condition $(2\eta
+\varepsilon(\mathbf v) + p \mathbf 1) \cdot \mathbf n = 0$.
+The conditions on the interface between the two domains has been
+discussed above already.
+
+This program is primarily intended to show how to deal with different
+physics in different parts of the domain, and how to implement such
+models in deal.II. As a consequence, we won't bother coming up with a
+good solver: we'll just use the SparseDirectUMFPACK class which always
+works, even if not with optimal complexity. We will, however, comment
+on possible other solvers in the <a href="#Results">results</a> section.
+<a name="Results"></a>
<h1>Results</h1>
+
+<a name="extensions"></a>
+<h3>Possibilities for extensions</h3>
+
+An obvious place to improve the program would be to use a more
+sophisticated solver — in particular one that scales well and
+will also work for realistic 3d problems. This shouldn't actually be
+too hard to achieve here, because of the one-way coupling from fluid
+into solid. To this end, assume we had re-ordered degrees of freedom
+in such a way that we first have all velocity and pressure degrees of
+freedom, and then all displacements (this is easily possible using
+DoFRenumbering::component_wise). Then the system matrix could be split
+into the following block form:
+@f[
+ A_\text{global}
+ =
+ \begin{pmatrix}
+ A_{\text{fluid}} & 0 \\
+ B & A_{\text{solid}}
+ \end{pmatrix}
+@f]
+where $A_{\text{fluid}}$ is the Stokes matrix, $A_{\text{solid}}$
+results from the elasticity equations, and $B$ is the matrix that
+comes from the interface condition. Now notice that the matrix
+@f[
+ A_\text{global}^{-1}
+ =
+ \begin{pmatrix}
+ A_{\text{fluid}}^{-1} & 0 \\
+ -A_\text{solid}^{-1} B
+ A_\text{fluid}^{-1} & A_{\text{solid}}^{-1}
+ \end{pmatrix}
+@f]
+is the inverse of $A_\text{global}$. Applying this matrix requires
+only one solve with $A_\text{fluid}$ and $A_\text{solid}$ each since
+@f[
+ \begin{pmatrix}
+ p_x \\ p_y
+ \end{pmatrix}
+ =
+ \begin{pmatrix}
+ A_{\text{fluid}}^{-1} & 0 \\
+ X & A_{\text{solid}}^{-1}
+ \end{pmatrix}
+ \begin{pmatrix}
+ x \\ y
+ \end{pmatrix}
+@f]
+can be computed as $p_x = A_{\text{fluid}}^{-1} x$ followed by
+$p_y = A_{\text{solid}}^{-1} (y-Bp_x)$.
+
+One can therefore expect that
+@f[
+ \widetilde{A_\text{global}^{-1}}
+ =
+ \begin{pmatrix}
+ \widetilde{A_{\text{fluid}}^{-1}} & 0 \\
+ -\widetilde{A_\text{solid}^{-1}} B
+ \widetilde{A_\text{fluid}^{-1}} & \widetilde{A_{\text{solid}}^{-1}}
+ \end{pmatrix}
+@f]
+would be a good preconditioner if $\widetilde{A_{\text{fluid}}^{-1}}
+\approx A_{\text{fluid}}^{-1}, \widetilde{A_{\text{solid}}^{-1}}
+\approx A_{\text{solid}}^{-1}$. That means, we only need good
+preconditioners for Stokes and the elasticity equations
+separately. These are well known, however: for Stokes, we can use the
+preconditioner discussed in the results section of step-22; for
+elasticity, a good preconditioner would be a single V-cycle of a
+geometric or algebraic multigrid.
--- /dev/null
+#FIG 3.2 Produced by xfig version 3.2.5b
+Landscape
+Center
+Metric
+A4
+100.00
+Single
+-2
+1200 2
+2 2 0 0 0 7 50 -1 45 0.000 0 0 -1 0 0 5
+ 1800 4500 5400 4500 5400 5400 1800 5400 1800 4500
+2 2 0 0 0 7 50 -1 45 0.000 0 0 -1 0 0 5
+ 3150 2700 4050 2700 4050 4500 3150 4500 3150 2700
+2 2 0 2 0 7 48 -1 -1 0.000 0 0 -1 0 0 5
+ 1800 1800 5400 1800 5400 5400 1800 5400 1800 1800
+2 1 0 1 0 7 48 -1 -1 0.000 0 0 -1 0 0 6
+ 1800 4500 3150 4500 3150 2700 4050 2700 4050 4500 5400 4500
+2 2 0 0 0 7 49 -1 -1 0.000 0 0 -1 0 0 5
+ 3240 4635 4005 4635 4005 4950 3240 4950 3240 4635
+2 2 0 0 0 7 48 -1 20 0.000 0 0 -1 0 0 5
+ 3240 4680 4005 4680 4005 4950 3240 4950 3240 4680
+2 1 0 2 0 7 49 -1 -1 0.000 0 0 -1 0 1 2
+ 3 1 2.00 60.00 120.00
+ 4500 1575 4500 2025
+2 1 0 0 0 7 49 -1 -1 0.000 0 0 -1 0 0 2
+ 2250 1575 2250 2025
+2 1 0 2 0 7 49 -1 -1 0.000 0 0 -1 1 0 2
+ 3 1 2.00 60.00 120.00
+ 2250 1575 2250 2025
+2 1 0 2 0 7 49 -1 -1 0.000 0 0 -1 1 0 2
+ 3 1 2.00 60.00 120.00
+ 2700 1575 2700 2025
+2 1 0 2 0 7 49 -1 -1 0.000 0 0 -1 0 1 2
+ 3 1 2.00 60.00 120.00
+ 4950 1575 4950 2025
+2 1 0 4 0 7 49 -1 -1 0.000 0 0 -1 0 0 4
+ 1800 4500 1800 5400 5400 5400 5400 4500
+4 1 0 49 -1 19 16 0.0000 4 195 570 2250 3150 fluid\001
+4 1 0 49 -1 19 16 0.0000 4 195 570 4950 3150 fluid\001
+4 1 0 46 -1 19 16 0.0000 4 195 630 3600 4905 solid\001
+4 1 0 49 -1 19 14 0.0000 4 240 1725 3600 5670 fixed boundary\001
+4 1 0 49 -1 19 14 0.0000 4 180 855 4725 1350 outflow\001
+4 1 0 49 -1 19 14 0.0000 4 180 690 2475 1350 inflow\001