<a name="Intro"></a>
<h1>Introduction</h1>
+This program deals with the problem of coupling different physics in different
+parts of the domain. Specifically, let us consider the following situation:
+
+- In a part $\Omega_f$ of $\Omega$, we have a fluid flowing that satisfies the
+ time independent Stokes equations (in the form that involves the strain
+ tensor):
+ @f{align*}
+ -2\eta\nabla \cdot \varepsilon(\mathbf v) + \nabla p &= 0,
+ \qquad \qquad && \text{in}\ \Omega_f\\
+ -\nabla \cdot \mathbf v &= 0 && \text{in}\ \Omega_f.
+ @f}
+ Here, $\mathbf v, p$ are the fluid velocity and pressure, respectively.
+ We prescribe the velocity on part of the external boundary,
+ @f{align*}
+ \mathbf v = \mathbf v_0 \qquad\qquad
+ \text{on}\ \Gamma_{f,1} \subset \partial\Omega \cap \partial\Omega_f
+ @f}
+ while we assume free-flow conditions on the remainder of the external
+ boundary,
+ @f{align*}
+ (2\eta \varepsilon(\mathbf v) + p \mathbf 1) \cdot \mathbf n = 0
+ \qquad\qquad
+ \text{on}\ \Gamma_{f,2} = \partial\Omega \cap \partial\Omega_f \backslash
+ \Gamma_{f,1}.
+ @f}
+- The remainder of the domain, $\Omega_s = \Omega \backslash \Omega_f$ is
+ occupied by a solid whose deformation field $\mathbf u$ satisfies the
+ elasticity equation,
+ @f{align*}
+ -\nabla \cdot C \varepsilon(\mathbf u) = 0 \qquad\qquad
+ & \text{in}\ \Omega_s,
+ @f}
+ where $C$ is the rank-4 elasticity tensor (for which we will use a
+ particularly simple form by assuming that the solid is isotropic).
+ It deforms in reaction to the forces exerted by the
+ fluid flowing along the boundary of the solid. We assume this deformation to
+ be so small that it has no feedback effect on the fluid, i.e. the coupling
+ is only in one direction. For simplicity, we will assume that the
+ solid's external boundary is clamped, i.e.
+ @f{align*}
+ \mathbf u = \mathbf 0 \qquad\qquad
+ \text{on}\ \Gamma_{s,1} = \partial\Omega \cap \partial\Omega_s
+ @f}
+- As a consequence of the small displacement assumption, we will pose the
+ following boundary conditions on the interface between the fluid and solid:
+ first, we have no slip boundary conditions for the fluid,
+ @f{align*}
+ \mathbf v = \mathbf 0 \qquad\qquad
+ \text{on}\ \Gamma_{i} = \partial\Omega_s \cap \partial\Omega_f;
+ @f}
+ secondly, the forces on the solid equal the normal strain from the fluid,
+ @f{align*}
+ (C \varepsilon(\mathbf u)) \mathbf n =
+ (2 \eta \varepsilon(\mathbf v) + p \mathbf 1) \mathbf n \qquad\qquad
+ \text{on}\ \Gamma_{i} = \partial\Omega_s \cap \partial\Omega_f.
+ @f}
+
+
+This sort of coupling is of course possible by simply having two Triangulation
+and two DoFHandler objects, one each for each of the two subdomains. On the
+other hand, deal.II is much simpler to use if there is a single DoFHandler
+object that knows about the discretization of the entire problem.
+
+This program is about how this can be achieved. Note that the goal is not to
+present a particularly useful physical model (a realistic fluid-structure
+interaction model would have to take into account the finite deformation of
+the solid and the effect this has on the fluid): this is, after all, just a
+tutorial program intended to demonstrate techniques, not to solve actual
+problems. Furthermore, we will make the assumption that the interface between
+the subdomains is aligned with cell faces.
+
+
+<h3>The general idea</h3>
+
+The fundamental idea to implement these sort of problems in deal.II goes as
+follows: in the problem formulation, the velocity and pressure variables
+$\mathbf v, p$ only live in the fluid subdomain $\Omega_f$. But let's assume
+that we extend them by zero to the entire domain $\Omega$ (in the general case
+this means that they will be discontinuous along $\Gamma_i$). So what is the
+appropriate function space for these variables? We know that on $\Omega_f$ we
+should require $\mathbf v \in H^1(\Omega_f)^d, p \in L_2(\Omega_f)$, so for
+the extensions $\tilde{\mathbf v}, \tilde p$ to the whole domain the following
+appears a useful set of function spaces:
+@f{align*}
+ \tilde {\mathbf v} &\in V
+ = \{\tilde {\mathbf v}|_{\Omega_f} \in H^1(\Omega_f)^d, \quad
+ \tilde {\mathbf v}|_{\Omega_s} = 0 \}
+ \\
+ \tilde p &\in P
+ = \{\tilde p|_{\Omega_f} \in L_2(\Omega_f), \quad
+ \tilde p|_{\Omega_s} = 0 \}.
+@f}
+Note that this is indeed a linear function space with obvious norm. Since no
+confusion is possible in practice, we will henceforth omit the tilde again to
+denote the extension of a function to the whole domain and simply refer by
+$\mathbf v, p$ to both the original and the extended function.