1 Introduction

Fluids like air and water can be modeled to high precision using the Navier–Stokes equations [1]. These equations are still intensively studied and have some curious mathematical features, often described as paradoxes. In [2], paradoxes are defined as plausible arguments that yield conclusions at variance with physical observation. The author makes the case that understanding the nature of these paradoxes is highly instructive, as it offers information about the shortcomings of a particular physical model.

Many paradoxes are known for inviscid flow, the most famous being d’Alembert’s paradox [3, 4]. D’Alembert proved that incompressible, inviscid fluid flow around a blunt body exerts zero drag force. This showcases a fundamental limitation of inviscid fluid flow models, in that they cannot model fluid resistance [2, Chapter 1.7].

In this work, we turn our attention to viscous, incompressible fluids, which are commonly modeled using the Stokes equations. This model admits several paradoxes, one of them being Whitehead’s paradox [5, section 8.3]. Another paradox, arising from the incompressibility condition, is that the model overlooks acoustic effects, leading to the infinite propagation speed of velocity perturbations [6].

Here, we discuss the most well known paradox for two-dimensional Stokes flow, namely the Stokes paradox. Consider a domain \(\Omega \subset \mathbb {R}^3\) containing an infinitely long cylinder with radius 1. The cylinder has a boundary denoted \(\Gamma \). The domain is filled with a fluid moving with velocity \({{\textbf{u}}}\) and pressure p past the cylinder. Mathematically, this can be described using the Navier–Stokes equations

$$\begin{aligned} \begin{aligned} -\Delta {{\textbf{u}}}+ \nabla p&=-R \,{{\textbf{u}}}\cdot \nabla {{\textbf{u}}}\quad \hbox {in}\;\Omega ,\\ {{\nabla \cdot } \,}{{\textbf{u}}}&=0 \quad \;\hbox {in}\;\Omega , \\ \end{aligned} \end{aligned}$$
(1)

together with the boundary condition

$$\begin{aligned} {{\textbf{u}}}={{\textbf{g}}}\;\hbox {on}\;\Gamma , \end{aligned}$$
(2)

where \({{\textbf{g}}}\) is the cylinder velocity.

In this form, the Navier–Stokes equations are posed with only one parameter, namely the Reynolds number R [7]:

$$\begin{aligned} R=U L / \nu . \end{aligned}$$
(3)

Here, U is the representative flow velocity, L the representative length for the domain, and \(\nu \) is the kinematic fluid viscosity.

In this work, we are interested in the case where the Reynolds number will be small, and we have \(R \ll 1\). In this case, it seems reasonable to drop the advective term, in which case we have the simpler Stokes equations

$$\begin{aligned} \begin{aligned} -\Delta {{\textbf{u}}}+ \nabla p&= 0 \;\hbox {in}\;\Omega ,\\ {{\nabla \cdot } \,}{{\textbf{u}}}&=0\;\hbox {in}\;\Omega , \end{aligned} \end{aligned}$$
(4)

again with a boundary condition of the form (2).

If the domain \(\Omega \) is taken to be infinitely large, however, this simplification leads to a fundamental paradox [8, 9]. The Stokes paradox is that “creeping flow of an incompressible Newtonian fluid around a cylinder in an unbounded fluid has no solution” [10]. Others have characterized the paradox by saying

  • [11, 1st paragraph] “Stokes (1851) established that there was no solution to the two-dimensional, steady, incompressible, Navier–Stokes equations for asymptotically uniform flow around a cylinder.”

  • [12, Remark 3.15] “no classical solution... that tends to a nonzero vector at infinity.”

These statements require some clarification. Firstly, potential flow around a cylinder solves the Stokes equations with the right boundary conditions at infinity. However, potential flow (Fig. 2a) does not satisfy no-slip boundary conditions on the cylinder; for this reason it has commonly been discarded as physically incorrect.

To handle the no-slip boundary condition we instead look to the literature on functional analysis. A precise mathematical theory for the Stokes equations in an unbounded domain was developed in [13]. We can explain the results there informally as follows: That it is a well posed problem to require a reasonable flow profile around a reasonable domain. A solution therefore exists solving Stokes equations in an infinite domain enclosing a cylinder, as long as we set reasonable boundary conditions on the cylinder. But the paradox is that we cannot set a boundary condition at infinity.

This point is often misunderstood, saying instead that there is a “need to satisfy two boundary conditions, one on the object and one at infinity” [14]. This is despite the fact that many papers have dealt with the paradox and its resolution. The first resolution was by Oseen [15] who realized that it was necessary to keep \(R>0\) in (1) and provided an approximate (linearized) solution to Navier–Stokes. This observation has been substantially amplified by Finn [8]. But many others have dealt with the paradox, for example by improving the Oseen approximation [16, 17]. For a survey and history of their methods, see [5, Chapter V] where the so-called matched asymptotic expansions are traced back to seminal work by K. O. Friedrichs.

The Sobolev space in which the solution exists provides important context for the Stokes paradox. To be more precise, the solution exists in a special weighted Sobolev space in which we give up control over the function as we get infinitely far from the cylinder. For this reason it is not possible to prescribe the flow at infinity. We will show that, if the flow is specified to be a constant on the cylinder, the flow must be that constant everywhere. Thus, while a non-trivial solution exists, it may not be physically meaningful.

Due to the confusion related to the Stokes paradox, we here examine it in some detail; in particular, we draw together disparate approaches to give the fullest possible understanding. Although much of what we present in Sect. 4 can be found separately elsewhere, the combination of the different approaches gives a more complete picture than has so far been presented in one place.

The article will proceed as follows. We begin in Sect. 2 by giving a derivation of the Stokes paradox, using the mathematical framework from [13]. In Sect. 3, we examine the impact of a different boundary condition on the cylinder, Navier’s slip (friction) condition. We see that it is possible to resolve the Stokes paradox with one value of the friction parameter, although that value seems to be nonphysical. We next view the Stokes paradox through other lenses. In particular, we solve the Stokes problem on a very large (but finite) domain surrounding the cylinder. In this case we can pose any boundary conditions we like on the outer boundary. So what goes wrong as we let the outer boundary go to infinity? In Sect. 4 we answer this in two ways, using modern computational methods (Sect. 4.1) and classical analytical solution techniques (Sect. 4.2). We will see that they give the same answer: the solution goes to a constant. Thus we have multiple ways of viewing the Stokes paradox, each with its own advantages and limitations.

In Sect. 5 we review the resolution of the Stokes paradox by Oseen [15]. According to Oseen, the paradox is caused by the limited validity of Stokes’ approximation, which relies on the Reynolds number being small. To be more precise, we have two limits going to infinity: the viscosity and the domain size. Either limit alone is well behaved, but jointly they are not. Thus one must consider the full Navier–Stokes equations if the domain is large. We also discuss briefly some open questions regarding the existence of a solution for the Navier–Stokes equations when the Reynolds number grows large.

In Sect. 6 we describe extensions of the Stokes paradox concepts to other flow problems. In particular, we discuss how the Stokes paradox relates to flow instabilities. The Reynolds-Orr method gives a way to calculate the kinetic energy instability of a perturbed base flow, where the most unstable flow perturbations are calculated by solving a Stokes type eigenvalue problem. In [18], it was observed that the instability of a base flow kept increasing as the domain grew. This can be explained as a particular instance of the Stokes paradox. To the best of our knowledge, however, it cannot be resolved in any such way as Oseen’s resolution of the Stokes paradox.

2 Derivation of Stokes paradox using the variational framework

The Stokes paradox occurs for incompressible Stokes flow with no-slip boundary conditions on the cylinder (i.e. \({\textbf{g}}=0\) in (2)). The paradox can be derived in several ways, with varying levels of rigor. In [2, Chapter 1.17], it was derived using a symmetry argument, with the caveat that “I know of no rigorous proof”. More commonly used is the method of matched asymptotic expansions [5], which requires matching solutions near and far away from the cylinder; a global solution was derived in [11] for Navier–Stokes with small but non-zero Reynolds numbers.

In this work, we present three approaches: (i) a novel, rigorous derivation using weighted Sobolev spaces, (ii) a formal approach using simulations in domains of increasing size and (iii) a semi-formal approach of deriving analytic solutions in bounded domains and passing to the limit.

The rigorous derivation we present has the advantage that it does not rely on asymptotic expansions of the solutions; thus, we avoid the pitfall of asymptotic paradoxes [2, Chapter 1.2]. As stated therein, “it need not be true that as the coefficient of a certain term goes to zero, the solution tends to the solution obtained by annihilating that coefficient.” In the context of functional analysis, this can be understood by saying that if the solution set is unbounded, sequences of solutions need not converge in that space.

2.1 Sobolev spaces for the Stokes equations

If the domain \(\Omega \) is Lipschitz continuous [19, section 5.1]), the system is well posed with \({{\textbf{u}}}\in (H^1(\Omega ))^d\), \(d\in \{2,3\}\) being the dimension of the domain, and \(p \in L^2(\Omega /\mathbb {R})\), where

$$\begin{aligned} L^2(\Omega )/\mathbb {R}= \left\{ v : \Omega \rightarrow \mathbb {R} \; : \; \int _{\Omega } v^2 \,d{{\textbf{x}}}< \infty , \quad \int _{\Omega } v \,d{{\textbf{x}}}=0 \right\} \end{aligned}$$

is the space of square-integrable functions, together with the norm given by

$$\begin{aligned} \Vert {v}\Vert _{L^2(\Omega )}=\sqrt{\int _\Omega v^2 \, d{{\textbf{x}}}}. \end{aligned}$$

We also define

$$\begin{aligned} H^1(\Omega )= \left\{ v \in L^2(\Omega ) \; : \; \nabla v \in L^2(\Omega ) \right\} \end{aligned}$$

and the norm

$$\begin{aligned} \Vert {v}\Vert _{H^1(\Omega )}=\sqrt{\int _\Omega |\nabla v({{\textbf{x}}})|^2 +v({{\textbf{x}}})^2\,d{{\textbf{x}}}}, \end{aligned}$$

where \(\vert v({{\textbf{x}}})\vert \) is the Euclidean norm of \(\nabla v({{\textbf{x}}})\). The notation \({{\textbf{u}}}\in (H^1(\Omega ))^d\) then means that every component of \({{\textbf{u}}}\) is in \(H^1(\Omega )\). To simplify notation, we from now on drop the superscript and simply write \({{\textbf{u}}}\in H^1(\Omega )\).

In summary, given a bounded domain and reasonable \({{\textbf{f}}}\) and \({\textbf{g}}\) (for example \({{\textbf{f}}}\in L^2(\Omega )\) and \({\textbf{g}} \in H^1(\Omega )\) [19]) there exists a unique solution pair \({{\textbf{u}}}\in H^1(\Omega )\) and \(p\in L^2(\Omega )\) of (4). Once we know there exists a unique solution, we can use numerical methods to solve for its approximation.

If the domain \(\Omega \) is infinite, the previous result no longer holds. Instead, the Stokes equation will be well posed with \(p\in L^2(\Omega )/\mathbb {R}\) and \( {{\textbf{u}}}\in H^1_w(\Omega )\) defined by the norm

$$\begin{aligned} \Vert {{{\textbf{v}}}}\Vert _{H^1_w(\Omega )}=\sqrt{\int _\Omega |\nabla {{\textbf{v}}}({{\textbf{x}}})|^2 +\big (1+|{{\textbf{x}}}|\log |{{\textbf{x}}}|\big )^{-2}|{{\textbf{v}}}({{\textbf{x}}})|^2\,d{{\textbf{x}}}}. \end{aligned}$$
(5)

Centrally, this is a weaker norm than the one we had for the \(H^1(\Omega )\). Both spaces require the gradient of the function itself to be square-integrable, but in the \(H^1_w(\Omega )\)-space we only require the function to be square-integrable when multiplied by a weight function \(\big (1+|{{\textbf{x}}}|\log |{{\textbf{x}}}|\big )^{-1}\). As this weight function goes to zero as \({{\textbf{x}}}\rightarrow \infty \), the function does not have to decay at all as we move away from the cylinder. As we will see it may even diverge. Therefore we have to be very careful about assigning limit values at infinity to functions \({{\textbf{u}}}\in H^1_w(\Omega )\).

What can be said, based on [13], is that one cannot specify boundary conditions simultaneously on the cylinder and at infinity. That is, having specified conditions on the cylinder, the conditions at infinity have already become specified.

2.2 Derivation of the Stokes paradox

Now that we know there exists a solution, we can straightforwardly formulate the Stokes paradox. For this, it is useful to choose moving coordinates. Instead of thinking of a fixed cylinder in a moving fluid, let us reverse the point of view by using moving coordinates such that the fluid appears at rest. If we think of a moving cylinder in an infinite fluid, we can pose the (Navier–)Stokes equations as in (4) with a boundary function \({{\textbf{g}}}=(1,0)\), assuming the cylinder is moving in the x-direction with unit speed. In view of [13], there is a unique solution \({{\textbf{u}}}\in H^1_w(\Omega )\), where \(\Omega \) is the complement of the cylinder (i.e. \(\{ (x,y)\in \mathbb {R}^2: x^2+y^2>1 \}\)) and fixed in time (Fig. 1).

Fig. 1
figure 1

Solution of the Stokes equations in a finite box containing a cylinder, when the cylinder is moving through the domain. This corresponds to (4) in the domain (15) with \(b=7.5\), with boundary conditions (16). The plot shows the pressure p, flux \({{\textbf{u}}}\) (cones) and streamlines. The horizontal axis is the flow direction. Due to the no-slip boundary condition \({{\textbf{u}}}=(0,0)\) on the box walls, the fluid is forced to recirculate. Due to the Stokes paradox, the recirculation zone increases with box size. From Theorem 2.1, we have the paradoxical result \(u\rightarrow (1,0)\) everywhere if we took \(\Omega \) if \(b\rightarrow \infty \)

But \({{\textbf{g}}}\in H^1_w(\Omega )\), and \({{\textbf{g}}}\) is a solution of (4), with constant pressure. And [13] proves that \({{\textbf{g}}}\) is the solution. Thus we have proved the following theorem.

Theorem 2.1

Consider an infinitely wide domain \(\Omega \). Suppose that we move an infinite cylinder in a direction perpendicular to the axis of the cylinder with unit speed. If the entirety of the fluid is governed by the Stokes equations (4) with a no-slip boundary condition on the cylinder, then the entirety of the fluid is forced to move at unit speed.

In the variational framework, the Stokes paradox is not really a paradox: The Stokes equation is well posed in infinite domains, but the appropriate function space for \({{\textbf{u}}}\) is one where we give up control of \({{\textbf{u}}}\) as it approaches infinity. Thus it is not surprising that the solution is non-physical away from the cylinder. In the time of Stokes (1819–1903), the functional analysis approach to partial differential equations was still in its infancy. Indeed, it was not until 1991 [13] that the appropriate function spaces were fully clarified.

Of course, one can debate the difference between a physical paradox and a mathematical paradox. But for a particular mathematical model, it is mathematics that determines the issue. Thus we are talking here only about the Stokes model. In more recent challenges that we discuss in section 3, the issue is more one of physics, in which we may still be looking for the right model.

The fact that we are not able to specify the limiting value of the solution raises the question of how badly the solution might behave. We investigate this in the next section.

2.2.1 Limit values of functions in \(H^1_w\)

In the previous section we saw that moving an infinitely long cylinder through an infinite domain \(\Omega \) with given speed \({{\textbf{g}}}=(1,0)\) caused the entire solution flux to be \({{\textbf{u}}}=(1,0)\). In fact, due to the weight function, any \({{\textbf{v}}}\in H^1_w(\Omega )\) can tend to a nonzero constant at infinity. Worse, it can grow like \((\log r)^\alpha \) for \(\alpha <1/2\), as long as its gradient remains square integrable. In particular, take \(u(r)=(\log r)^\alpha \). Then for \(r>1\),

$$\begin{aligned} |\nabla u|\,= \Big |\alpha \frac{\nabla r}{r} (\log r)^{\alpha -1}\Big | = \Big |\alpha \frac{{{\textbf{x}}}}{r^2} (\log r)^{\alpha -1}\Big | = \Big |\frac{\alpha }{r} (\log r)^{\alpha -1}\Big |. \end{aligned}$$

This expression is square integrable at infinity if

$$\begin{aligned} \int _K^\infty \frac{r\,dr}{r^2 (\log r)^{2(1-\alpha )}}<\infty . \end{aligned}$$

Changing coordinates to \(s=\log r\) (so that \(r^{-1}dr=ds\)), our condition reduces to

$$\begin{aligned} \int _{\log K}^\infty \frac{ds}{s^{2(1-\alpha )}}<\infty . \end{aligned}$$

This holds when \(\alpha <1/2\).

Thus the Stokes equation posed in an infinite domain may have a solution that diverges as \(\vert {{\textbf{x}}}\vert \rightarrow \infty \). An example of this is the zero friction solution (9), as we now discuss.

As Stokes viewed his challenge, he was looking for a solution of what we now call the Stokes equations with certain boundary conditions. We will show in Sect. 5 that if he had changed the boundary conditions on the cylinder, he might have found a resolution, namely, potential flow. But of course that was not the boundary condition he wanted.

3 Navier’s revenge

In Sect. 2.2 we saw how the imposition of a no-slip boundary condition on the cylinder leads to the Stokes paradox in unbounded domains. In this section we will discuss what may happen for different boundary conditions. We will see that the Stokes paradox does not occur for all boundary conditions.

Instead of the no-slip boundary condition (2) with \({\textbf{g}}=0\), let us consider Navier’s slip condition. This boundary condition, sometimes referred to as Navier’s friction condition [2022], links the tangential velocity and the shear stress on \(\Gamma \):

$$\begin{aligned} \beta \, {{\textbf{u}}}\cdot {\varvec{\tau }}_k = -\nu \, {{\textbf{n}}}^t(\nabla {{\textbf{u}}}+\nabla {{\textbf{u}}}^t){\varvec{\tau }}_k,\quad k=1,2, \end{aligned}$$
(6)

where \({\varvec{\tau }}_i\) are orthogonal tangent vectors and \(\beta \) is the friction coefficient. This is coupled with the no-penetration condition \({{\textbf{u}}}\cdot {{\textbf{n}}}=0\) on \(\Gamma \). In our two-dimensional case of flow around a cylinder, there is only one tangent vector \({\varvec{\tau }}\). The other one is perpendicular to the plane of the two-dimensional flow, that is, parallel to the cylinder axis. For \(\beta >0\), the Navier slip condition works as a friction causing the fluid to slow down as it slips over the cylinder boundary \(\Gamma \).

Fig. 2
figure 2

Analytical solutions to the Stokes equations for flow around an infinite cylinder \(\Gamma \), with Navier slip boundary conditions on \(\Gamma \). Displayed are stream functions, streamlines, and flux (cones) on a box subdomain. The solutions correspond to different friction coefficients on the cylinder: (left) potential flow with \(\beta =-2\nu \) and (right) zero friction with \(\beta =0\). Potential flow tends toward \({{\textbf{u}}}= (1,0)\) as \(r \rightarrow \infty \). However, the boundary condition on the cylinder \(\Gamma \) is nonphysical as \(\beta <0\), leading to the D’Alembert paradox. Zero-friction flow has \({{\textbf{u}}}_x \rightarrow \infty \) as \(r \rightarrow \infty \). This suggests that the cylinder pushes an infinite amount of fluid, leading us back to the Stokes paradox

Assume \(\Gamma \) is an infinitely long cylinder of radius 1 in the z-direction with the centerline of the cylinder being at the origin (0, 0) in the xy-plane. Consider now the Stokes flow equations (4). We construct two analytic solutions. For the first, we take \({\phi }\) to be a potential function, i.e. we set \({{\textbf{u}}}=\nabla {\phi }=({\phi }_x,{\phi }_y)\), where \({\phi }_i\) denotes the derivative of \({\phi }\) in the ith direction:

$$\begin{aligned} {{\textbf{u}}}(x,y)=({\phi }_x(x,y),{\phi }_y(x,y))=\Bigg ( 1+\frac{y^2-x^2}{(x^2+y^2)^2},\frac{-2xy}{(x^2+y^2)^2}\Bigg ). \end{aligned}$$
(7)

This solution for \({{\textbf{u}}}\) is commonly referred to as potential flow. The potential flow solution is shown in Fig. 2a together with its stream function and streamlines. We see that \({{\textbf{u}}}\) goes to uniform flow at infinity. Moreover, \({{\textbf{u}}}\cdot {{\textbf{n}}}=0\) on the cylinder. However, the tangential velocity \({{\textbf{u}}}\cdot {\varvec{\tau }}\ne 0\), meaning that this solution does not satisfy a no-slip boundary condition on \(\Gamma \). This led Stokes to reject this solution.

For the second solution, we use a stream function

$$\begin{aligned} {\psi }=(\sin \theta )\, r\log r =y\log r . \end{aligned}$$
(8)

We define \({{\textbf{u}}}\) to be the curl of \({\psi }\), and thus

$$\begin{aligned} {{\textbf{u}}}(x,y) = \Big (\frac{y^2}{r^2} + \log (r), -\frac{xy}{r^2}\Big ). \end{aligned}$$
(9)

By construction \({{\textbf{u}}}\) satisfies the second equation in (4). The first equation in (4) can then be satisfied by choosing p so that \(\nabla p = \Delta {{\textbf{u}}}\). We will show in Sect. 4.2 that such a solution p exists. We refer to this solution as zero friction flow.

Potential flow (7) and zero friction flow (9) then solve the Stokes equations with Navier’s boundary condition (6), each corresponding to a particular choice of \(\beta \). Indeed, the potential flow solution solves the Navier–Stokes equations for all \(\nu \), and satisfies the Navier slip condition if \(\beta =-2\nu \) [18]. Moreover, this flow goes to the desired asymptotic limit (zero) at infinity. It is thus not affected by the Stokes paradox. That is, for this particular boundary condition, the solution belongs to the standard Sobolev space \(H^1(\Omega )\) and exhibits reasonable physical behavior in the entire domain.

This raises the question of what happens for other values of \(\beta \). Interestingly, the other analytic solution we have, i.e. (9), satisfies the friction boundary condition (6) if \(\beta =0\). To see this, note that \({\varvec{\tau }}=(-y, x)\) and \({{\textbf{n}}}=(-x,-y)\) on \(\Gamma \). Computing \((\nabla {{\textbf{u}}})\, {\varvec{\tau }}\) we find

$$\begin{aligned} \begin{aligned} (\nabla {{\textbf{u}}}){\varvec{\tau }}&= {\varvec{\tau }}\cdot \nabla {{\textbf{u}}}= \partial _\theta \big (\sin ^2\theta + \log (r), -\cos \theta \sin \theta \big ) \\&= \big (2\sin \theta \cos \theta , -\cos ^2\theta +\sin ^2\theta \big ). \end{aligned} \end{aligned}$$
(10)

Therefore (omitting some trigonometric simplifications)

$$\begin{aligned} \begin{aligned} {{\textbf{n}}}^t(\nabla {{\textbf{u}}}){\varvec{\tau }}|_\Gamma&=-(\cos \theta ,\sin \theta )^t \big (2\sin \theta \cos \theta , -\cos ^2\theta +\sin ^2\theta \big )\\&=-2\sin \theta \cos ^2\theta +\cos ^2\theta \sin \theta -\sin ^3\theta =-\sin \theta . \end{aligned} \end{aligned}$$
(11)

Similarly

$$\begin{aligned} (\nabla {{\textbf{u}}}){{\textbf{n}}}={{\textbf{n}}}\cdot \nabla {{\textbf{u}}}= -r \partial _r\big (\sin ^2\theta + \log (r), -\cos \theta \sin \theta \big ) = \big (-1, 0\big ). \end{aligned}$$
(12)

This says that

$$\begin{aligned} {\varvec{\tau }}^t(\nabla {{\textbf{u}}}){{\textbf{n}}}|_\Gamma =(-\sin \theta ,\cos \theta )\cdot \big (-1, 0\big )=\sin \theta . \end{aligned}$$
(13)

Note that \({{\textbf{n}}}^t(\nabla {{\textbf{u}}}^t){\varvec{\tau }}={\varvec{\tau }}^t(\nabla {{\textbf{u}}}){{\textbf{n}}}\). Therefore

$$\begin{aligned} {{\textbf{n}}}^t(\nabla {{\textbf{u}}}+\nabla {{\textbf{u}}}^t){\varvec{\tau }}|_\Gamma = \big ({{\textbf{n}}}^t(\nabla {{\textbf{u}}}){\varvec{\tau }}+{\varvec{\tau }}^t(\nabla {{\textbf{u}}}){{\textbf{n}}}\big )|_\Gamma =0. \end{aligned}$$
(14)

Thus the function in (9) solves the Stokes equations and satisfies the Navier slip condition if \(\beta =0\). But this solution diverges as \(r\rightarrow \infty \), fast enough that the norm in (5) is not finite. Thus (9) does not resolve the Stokes paradox.

It is worth noting that the fact that \(\beta =0\) does not mean that the drag on the cylinder is zero [3]. It is known that the drag is zero for \(\beta =-2\nu \), and this is the core of d’Alembert’s paradox [3]. For \(\beta >0\), the Navier slip condition acts as a friction force, slowing the flow as it slips over the cylinder. For \(\beta \rightarrow \infty \), the Navier friction boundary condition converges to the Stokes no-slip condition. For other values of \(\beta \), the techniques in Sect. 4 could be used to see if there are plausible solutions of the Stokes paradox.

In conclusion, we see that the Stokes paradox is resolved using the Navier slip boundary condition with one particular value for \(\beta \), but not for others. Navier died in 1836, so he was not available to comment on Stokes’ paradox. We can only wonder what he might have said.

Remark 1

The Navier slip boundary condition is known to resolve other paradoxes, occurring both for the Stokes and Navier-Stokes equations. In [23], it is shown that the no-slip boundary condition reduces the regularity of entries in the resistance matrix near a boundary (due to their divergence being non-integrable). This causes mass-transport paradoxes, one of them being that a particle falling in Newtonian fluid will never reach a boundary wall in finite time. This can be resolved by relaxing the no-slip condition to a Navier slip condition. In contact line problems [24, 25], the imposition of a no-slip boundary condition is known to induce a singularity in the stress, that results in a nonphysical divergence for the energy dissipation rate. Again, this can be resolved by introducing the Navier slip condition, with the friction coefficient depending on the contact angle [26, Section 7]. To make note of a remaining challenge, this approach has not yet been shown to be well posed mathematically. This is a free boundary problem, and these are well known to be particularly difficult to analyze in full generality.

4 Stokes flow on bounded domains of increasing size

In Sect. 2.1 we saw how the Stokes problem lost the ability to specify the value of the solution on the boundary away from the cylinder. With this in mind, we now restrict our attention to bounded domains, where it is possible to pose boundary conditions. We explore two approaches, a computational one and an analytical one. We will see that as we increase the size of the box, we again encounter the Stokes paradox.

4.1 Computational approach

Recent advances in software [27, 28] have made it easy to solve partial differential equations (PDEs). Using such software, you can study PDEs without knowing detailed background prerequisites [29]. We now indicate this approach for the Navier–Stokes equations.

Consider the domain \(\Omega _b\) defined by

$$\begin{aligned} \Omega _b=\left\{ {{\textbf{x}}} \; : \; |{{\textbf{x}}}|>1,\; |x_i|<b,\;i=1,2 \right\} \end{aligned}$$
(15)

for \(b>1\). Let \(\Gamma \) denote the subset of \(\partial \Omega _b\) defined by

$$\begin{aligned} \Gamma =\left\{ {{\textbf{x}}} \; : \; |{{\textbf{x}}}|=1 \right\} , \end{aligned}$$

that is, \(\Gamma \) represents the cylinder.

We keep our viewpoint of a cylinder moving through the larger domain where the fluid is at rest. I.e., we consider solutions \({{\textbf{u}}}^b\) of the problem (4) with boundary conditions

$$\begin{aligned} {{\textbf{u}}}^b=(1,0)\;\hbox {on}\;\Gamma ,\qquad {{\textbf{u}}}^b={{\textbf{0}}}\;\hbox {on}\;\partial \Omega _b\backslash \Gamma . \end{aligned}$$
(16)

Figure 3 shows the horizontal component of the solution for (a) \(b=16\) and (b) \(b=32\). We see that the support of the horizontal component spreads as the box gets bigger. Thus we see that the horizontal component of the solutions is not really going to zero at the boundary of the box. It remains positive as we go to the edge of the domain both upstream and downstream of the cylinder.

Fig. 3
figure 3

Solution of the Stokes equations in a finite box containing a cylinder, when the cylinder is moving through the domain. Panel a shows the magnitude of the horizontal component of the flux for box length \(b=16\). Panel b compares its magnitude along the centerline \(y=0\) with the one obtained for a larger box \(b=32\). Due to the Stokes paradox, we see that the recirculation zone does not localize, but increases with the size of the domain. The solutions are obtained by solving (4) in the domain (15) with boundary conditions (16). The computations used a \(b=16\), M=64 and b \(b=32\), M=128. M is the mesh parameter for mshr, with the number of segments for the definition of the circle chosen to be M as well

To examine how the support of the horizontal component of the solution spreads as b is increased, we considered a functional to examine the size of \({{\textbf{u}}}^b\) in regions of increasing size d, but fixed independent of b. Thus we define \(\sigma ({{\textbf{u}}}^b; d)\) to measure the size of the spread, by means of a fractional weighted average of \({{\textbf{u}}}^b\) over a subset of size d,

$$\begin{aligned} \sigma ({{\textbf{u}}}^b;d)=\int _{\Omega _b} \chi _d({{\textbf{x}}})^2 |{{\textbf{u}}}^b({{\textbf{x}}})|^2\,d{{\textbf{x}}}\Big / \int _{\Omega _b} \chi _d({{\textbf{x}}})^2 \,d{{\textbf{x}}}\end{aligned}$$
(17)

where \(\chi _d({{\textbf{x}}})\) is the interpolant on the computational mesh of the cut-off function

$$\begin{aligned} \chi _d({{\textbf{x}}}) = \frac{1}{2}\Big (1-\tanh \big (20\big (|{{\textbf{x}}}|^2-d^2\big )\big )\Big ) \end{aligned}$$

which is very close to 1 inside \(|{{\textbf{x}}}|<d\) and very close to zero outside of that. If \({{\textbf{u}}}^b\rightarrow (1,0)\) as \(b\rightarrow \infty \), then we would expect the expression (17) to increase to 1. If on the other hand, if \({{\textbf{u}}}^b\rightarrow {{\textbf{0}}}\) as \(r\rightarrow \infty \), we would expect the expression (17) to converge to some value less than 1 as b is increased.

Figure 4 gives the data for three values of d as a function of box size b. It appears (17) indeed increases to 1, which points to \({{\textbf{u}}}^b\rightarrow (1,0)\) for \(\vert {{\textbf{x}}}\vert < d\) as \(b\rightarrow \infty \). This is in accordance with the Stokes paradox as stated in Theorem 2.1; that as \(b \rightarrow \infty \), we have \({{\textbf{u}}}=(1,0)\) everywhere. But then the fluid moves like a solid.

Interestingly, \({{\textbf{u}}}=(1,0)\) satisfies the Navier slip condition with \(\beta =0\) since \(\nabla {{\textbf{u}}}={{\textbf{0}}}\). Thus this solution not only satisfies the no-slip boundary condition on the cylinder, but also the Navier friction condition with \(\beta =0\). The other solution with \(\beta =0\), i.e. (9) has different boundary values on the cylinder. It also diverges when \(r \rightarrow \infty \), unlike the solution \({{\textbf{u}}}=(1,0)\).

Fig. 4
figure 4

Computational examination of the size of the recirculation region driven by steady cylinder motion through a finite box. The plots show the spread of \({{\textbf{u}}}^b\) as a function of box size b (horizontal axis), as measured using \(\sigma ({{\textbf{u}}}^b;d)\) defined in (17). The spread is measured by a weighted average of \({{\textbf{u}}}^b\) over three different subdomain sizes d: (top) \(d=10\), (middle) \(d=20\), (bottom) \(d=30\). The solutions are obtained by solving (4) in the domain (15), with boundary conditions (16). a Stokes no-slip boundary condition, b Navier friction boundary condition, \(\beta =0\), on the cylinder

4.2 Analytic solutions in bounded domains

Let us return from modern numerical software back to the classics. In this section, we consider analytical solutions in increasingly large circular domains, following [11]. These domains are related to the so-called Leray approximate solutions [30].

Following [10, (12)], consider a general biharmonic stream function of the form

$$\begin{aligned} \psi =f(r) \sin \theta ,\qquad f(r)=Ar^{-1}+Br\log r + C r^3+Dr. \end{aligned}$$

Now let us show that the fact that \(\psi \) is biharmonic implies that \({{\textbf{u}}}=(\psi _y,-\psi _x)\) satisfies the first equation in (4). For the sake of calculations, let us for the moment augment the domain with a z-component and let \(\varvec{\psi }=(0,0,\psi )\) so that we can define \({{\textbf{u}}}={\textrm{curl} \,}\varvec{\psi }\). Note that \(\nabla \cdot \varvec{\psi }=0\) since \(\psi \) depends only on x and y. By using the vector calculus identity \({\textrm{curl} \,}({\textrm{curl} \,}{{\textbf{v}}})=\nabla (\nabla \cdot {{\textbf{v}}}) - \Delta {{\textbf{v}}}\), we then see

$$\begin{aligned} {\textrm{curl} \,}\Delta {{\textbf{u}}}&={\textrm{curl} \,}(\Delta ({\textrm{curl} \,}\psi )) = {\textrm{curl} \,}{\textrm{curl} \,}\Delta \varvec{\psi } =\nabla \underbrace{(\nabla \cdot \Delta \varvec{\psi })}_{=0}-\Delta ^2 \varvec{\psi }. \end{aligned}$$

Since all four terms in \(\psi \) are biharmonic in any open set that excludes the origin, we can then conclude that \({{\textbf{u}}}\) satisfies the following: \({\textrm{curl} \,}\Delta {{\textbf{u}}}=-\Delta ^2 \varvec{\psi }=0\) in any open set that excludes the origin.

Invoking Stokes’ theorem [19, Theorem 2.9], we conclude that \(\Delta {{\textbf{u}}}=\nabla p\) for some scalar function p. Thus \({{\textbf{u}}}\) satisfies (4). Since \({{\textbf{u}}}\) has the z-component zero, \(p_z=0\), and hence p is constant in z. Subtracting this constant, we can view p as being zero in the z-component and in this sense independent of z. So we have proved that \({{\textbf{u}}}\) is a solution of the two-dimensional Stokes equations.

Using polar coordinates, we find

$$\begin{aligned} \begin{aligned} -u_y =x\sin \theta \bigg (\frac{f'}{r}-\frac{f}{r^2}\bigg ), \qquad u_x ={f'\sin ^2\theta }+\frac{f\cos ^2\theta }{r}. \end{aligned} \end{aligned}$$
(18)

Impose constraints

$$\begin{aligned} f(1)=f'(1)=1,\quad f(b)=f'(b)=0. \end{aligned}$$
(19)

The latter two constraints in (19) imply that \({{\textbf{u}}}={\textrm{curl} \,}\psi ={{\textbf{0}}}\) for \(r=b\). The first two constraints in (19) imply that

$$\begin{aligned} {{\textbf{u}}}(r=1)=(1,0). \end{aligned}$$

Since we have identified four parameters and four constraints, we likely have found the required solution. But to be sure, we need to solve these equations and see what happens when \(b\rightarrow \infty \).

4.2.1 Algebraic solution of the PDE

Using the boundary conditions (19), we can evaluate the constants A, B, C, and D. We have

$$\begin{aligned} B=\frac{-2(b^2+1)}{2 + 2b^2(\log b -1)+2\log b} =\frac{-(1+b^{-2})}{ \log b -1+b^{-2}(1+\log b)} \approx \frac{-1}{\log b} \end{aligned}$$

and

$$\begin{aligned} C=\frac{1}{2 + 2b^2(\log b -1)+2\log b} \approx \frac{1}{2b^2\log b}, \end{aligned}$$

together with

$$\begin{aligned} A={\textstyle {1\over 2}}B +C\qquad \hbox {and}\qquad D=1-{\textstyle {1\over 2}}B -2 C. \end{aligned}$$

Although its derivation is tedious and error-prone, such a result can be checked in various ways. Thus as \(b\rightarrow \infty \),

$$\begin{aligned} B\rightarrow 0,\;b^2 C\rightarrow 0\implies A\rightarrow 0,\; D\rightarrow 1. \end{aligned}$$

Therefore \({{\textbf{u}}}^b\rightarrow (1,0)\) as \(b\rightarrow \infty \).

4.2.2 Asymptotic behavior

In particular, A, B, and \(b^2C\) decay like \(1/\log b\). Using (18), we find

$$\begin{aligned} {{\textbf{u}}}(r,\theta )=(f'(r),0)-\big (f'(r)-r^{-1}f(r)\big )(\cos ^2\theta ,\cos \theta \sin \theta ). \end{aligned}$$

Subtracting the expressions for \(f'\) and f/r, we find

$$\begin{aligned} \big |f'(r)-r^{-1}f(r)\big |=\bigg |\frac{-2A}{r^2}+B+2Cr^2\bigg |\le \frac{c}{\log b}. \end{aligned}$$

Examining the expression for \(f'\), we see that it decays like \(1/\log r\). Thus we considered the expression

$$\begin{aligned} \chi _b(r)=\Big (1+\frac{3\log r}{2\log b}\Big ) f'(r). \end{aligned}$$
(20)

A plot of \(\chi _b\) for \(b=10^k\) for \(k=2,3,\dots ,8\) is seen in Fig. 5. From this figure, we see that \(\chi _b\approx 1\) for small r/b. Note that, by definition of \(\chi _b\), the horizontal flow component \(u_x\) satisfies

$$\begin{aligned} u_x\approx f'(r)=\Big (1+\frac{3\log r}{2\log b}\Big )^{-1} \chi _b(r). \end{aligned}$$
(21)

Note that the pre-factor \(\big (1+\frac{3\log r}{2\log b}\big )^{-1}\) in (21) decreases monotonically from 1 at \(r=1\) to 2/5 at \(r=b\).

Fig. 5
figure 5

Plot of \(\chi _b(r)\), as defined in (20), describing the horizontal component of an analytic solution for the velocity in the flow direction; see (21). The values are plotted over the interval \(r\in [1,b]\) for \(b=10^k\) with \(k=2,3,\dots ,8\). The horizontal axis is the distance r from the origin. The vertical axis is the value of the factor \(\chi _b(r)\) in (21)

4.3 Friction boundary conditions

We performed a series of tests solving (4) in the domain (15) with Navier boundary conditions (6) with \(\beta =0\), for various r. Figure 4b gives the data for three values of d as a function of box size r for Navier boundary conditions (6) with \(\beta =0\). These data suggest that \({{\textbf{u}}}_r\) is converging to (1, 0) as \(r\rightarrow \infty \) with Navier boundary conditions.

5 Navier–Stokes: no paradox

According to [8, corollary to Theorem 7A], the nonlinear problem (1) has a solution with \({{\textbf{g}}}={{\textbf{0}}}\) and \({{\textbf{u}}}\rightarrow {{\textbf{u}}}^\infty \) with \({{\textbf{u}}}^\infty \) a constant, provided that \(|{{\textbf{u}}}^\infty |\) is sufficiently small; also see [31, Theorem XII.5.1]. The realization that adding an advection term to the equations resolves the Stokes paradox began with the work of Oseen [15]. See [8] for more historical references. The results of Finn [8] confirm that, for the Navier–Stokes equations, one can pose boundary conditions both on the cylinder (or other bluff body) and at infinity.

The constant function \({{\textbf{g}}}\) is also a solution of (1) (with constant pressure) for any \(R>0\). But the boundary conditions are different in this case. We can sum up the Stokes paradox by saying that a boundary condition is lost when we set the Reynolds number R to zero. Thus fluid flow can be described accurately in unbounded domains only by a nonlinear system.

For the cylinder problem, the diameter L gives us a length scale. Once we pick the flow \({{\textbf{u}}}^\infty \) (or \({{\textbf{g}}}\)), we have a speed U, and together with the kinematic viscosity \(\nu \), this determines a Reynolds number \(R>0\) given by (3). The only way R can be zero is to have \({{\textbf{u}}}^\infty ={{\textbf{g}}}={{\textbf{0}}}\) (or infinite viscosity, which does not sound like a fluid). Thus the Stokes equations can be viewed as an approximation for small Reynolds numbers, and this approximation works well for bounded domains. But it fails for infinite domains.

The existence of solutions of the Navier–Stokes system for large external flows, or equivalently for large Reynolds numbers, is reviewed by Galdi in [31, section XII.6]. However, the results there are not definitive; they present a condition that must hold if no such solutions exist.

6 Other paradoxes of Stokes flow

While the Stokes paradox is a classical topic in fluid mechanics, our understanding of paradoxes related to Stokes flow is still actively evolving. In this section, we describe some more recent paradoxes, some of which are being actively researched.

6.1 Stokes paradox for flow instability

Determining the form of Reynolds–Orr instability modes for Navier–Stokes flow around a cylinder requires solution of a generalized eigenproblem of the form [18]

$$\begin{aligned} \begin{aligned} -\Delta {{\textbf{u}}}+ \nabla p&= \lambda ^{-1} B_R {{\textbf{u}}}\;\hbox {in}\;\Omega ,\\ {{\nabla \cdot } \,}{{\textbf{u}}}&=0\;\hbox {in}\;\Omega , \end{aligned} \end{aligned}$$
(22)

with homogeneous boundary conditions on \(\Gamma =\partial \Omega \). Here the multiplication operator \(B_R\) is defined by

$$\begin{aligned} B_R({{\textbf{x}}})={\textstyle {1\over 2}}\big (\nabla {{\textbf{u}}}_R({{\textbf{x}}})+\nabla {{\textbf{u}}}_R^t({{\textbf{x}}})\big ), \end{aligned}$$

where \({{\textbf{u}}}_R\) solves (1). Restricted to a bounded domain, this constitutes a symmetric generalized eigenproblem, and thus it has real eigenvalues [32].

On an unbounded domain, we expect that some rate of decay for B would be required in order that the eigenproblem is well behaved. Define

$$\begin{aligned} V=\left\{ {{\textbf{v}}}\in H^1_w(\Omega ) \; : \; {{\textbf{v}}}=0\;\hbox {on}\;\Gamma \right\} , \end{aligned}$$

and we endow V with the norm of \(H^1_w(\Omega )\).

Lemma 6.1

Suppose that there is a positive constant \(C_B\) such that

$$\begin{aligned} |B({{\textbf{x}}})|\le C_B\big (1+|{{\textbf{x}}}|^{-2}\log ^2|{{\textbf{x}}}|\big )\quad \forall {{\textbf{x}}}\in \Omega . \end{aligned}$$
(23)

Then the multiplication operator associated with B is a bounded operator from V to \(V'\).

In the statement of the lemma, \(|B({{\textbf{x}}})|\) denotes the Frobenius norm of \(B({{\textbf{x}}})\). To prove the lemma, recall from [13, page 315] that

$$\begin{aligned} \Vert {{{\textbf{u}}}}\Vert _{V'}=\sup _{{{\textbf{0}}}\not ={{\textbf{v}}}\in V} \frac{\int _\Omega {{\textbf{u}}}({{\textbf{x}}})\cdot {{\textbf{v}}}({{\textbf{x}}})\,d{{\textbf{x}}}}{\Vert {{{\textbf{v}}}}\Vert _{H^1_w(\Omega )}}. \end{aligned}$$
(24)

But Hölder’s inequality and (23) imply

$$\begin{aligned} \Big |\int _\Omega B({{\textbf{x}}}){{\textbf{u}}}({{\textbf{x}}})\cdot {{\textbf{v}}}({{\textbf{x}}})\,d{{\textbf{x}}}\Big |^2&\le \int _\Omega |B({{\textbf{x}}})|\,|{{\textbf{u}}}({{\textbf{x}}})|^2\,d{{\textbf{x}}}\int _\Omega |B({{\textbf{x}}})|\,|{{\textbf{v}}}({{\textbf{x}}})|^2\,d{{\textbf{x}}}\\&\le C_B^2 \Vert {{{\textbf{u}}}}\Vert _{H^1_w(\Omega )}^2 \Vert {{{\textbf{v}}}}\Vert _{H^1_w(\Omega )}^2. \end{aligned}$$
(25)

Thus we conclude that

$$\begin{aligned} \Vert {B{{\textbf{u}}}}\Vert _{V'}\le C_B \Vert {{{\textbf{u}}}}\Vert _{H^1_w(\Omega )}. \end{aligned}$$

This completes the proof of Lemma 6.1.

Consider the operator K defined by \(K{{\textbf{v}}}={{\textbf{u}}}\) where \({{\textbf{u}}}\in V\) solves

$$\begin{aligned} \begin{aligned} -\Delta {{\textbf{u}}}+ \nabla p&= B {{\textbf{v}}}\;\hbox {in}\;\Omega ,\\ {{\nabla \cdot } \,}{{\textbf{u}}}&=0\;\hbox {in}\;\Omega . \end{aligned} \end{aligned}$$
(26)

Note that the eigenproblem for K, that is \(K{{\textbf{u}}}=\lambda {{\textbf{u}}}\), provides a resolution of (22). The following is a corollary of Lemma 6.1.

Theorem 6.1

Suppose that (23) holds. Then K is a bounded operator from V to V.

The proof of Theorem 6.1 follows from [13, Theorem 3.4] and Lemma 6.1.

From [31, Remark XII.8.3] we expect that

$$\begin{aligned} |\nabla {{\textbf{u}}}_R({{\textbf{x}}})|={{\mathcal {O}}}\left( |{{\textbf{x}}}|^{-1}\log ^2|{{\textbf{x}}}|\right) \quad \hbox {for large}\;|{{\textbf{x}}}|. \end{aligned}$$

Thus (23) does not hold for \(B_R\), and the associated multiplication operator is not a bounded operator on \(H^1_w(\Omega )\). Indeed it was found in [18] that the eigenvalues increase as the computational domain size is increased. We can summarize these observations as follows. Despite the fact that the Navier–Stokes equations are well defined on unbounded domains, the equations for their instabilities are not. We are tempted to call this the instability paradox.

6.2 Stokes paradox for other fluids

Stokes’ paradox is known to arise for different types of fluids, a more exotic example being that of Fermi electrons [33]. Tanner [10] has shown that shear thinning power-law fluids do not suffer Stokes’ paradox, but that shear thickening power-law fluids do. The Stokes power law model is given by [34, (1.5)]

$$\begin{aligned} \begin{aligned} -\nu {{\nabla \cdot } \,}\big (|D{{\textbf{u}}}|^{r-2}D{{\textbf{u}}}\big ) + \nabla p&={{\textbf{f}}}\quad \hbox {in}\;\Omega ,\\ {{\nabla \cdot } \,}{{\textbf{u}}}&=0 \quad \hbox {in}\;\Omega , \\ \end{aligned} \end{aligned}$$
(27)

where \(D{{\textbf{u}}}= {\textstyle {1\over 2}}\big (\nabla {{\textbf{u}}}+\nabla {{\textbf{u}}}^t\big )\). The fluid model is shear thinning if \(r<2\) and shear thickening if \(r>2\). The case \(r=2\) is the standard Stokes model.

Tanner showed that for flow around a cylinder, the Stokes paradox holds for \(r>2\), but not for \(r<2\). The approach [13] can possibly extend this result to more general domains. Due to the length of the current paper, we postpone such an investigation to a subsequent study.

6.3 Microfluidics and particle movement

The recent emergence of microfluidics in engineering has led to the opportunity of readressing central topics in fluid dynamics, one being the validity of the no-slip boundary condition. Indeed, experimental evidence has shown the occurrence of slip effects at the boundary [35], which become particularly relevant at the microscale. Recent work has shown that particular paradoxes can occur when combining Stokes flow with models of particle movement [36]; as discussed in Remark 1, this can sometimes be resolved by the use of a slip boundary condition [23]. Generally, the interaction between floating objects, the surrounding fluid, and fixed walls is non-trivial, giving rise to for example the Coanda effect [37].

7 Computational details

The fluid-flow plots were created in Paraview [38]. The simulation codes were developed in FEniCS [27, 29]. Octave [39] was used for the remaining computations and figures.

7.1 Numerical implementation

The curved boundary of the cylinder was approximated by polygons \(\Omega _h\), where the edge lengths of \(\partial \Omega _h\) are of order h in size. Then conventional finite elements can be employed, with the various boundary expressions being approximated by appropriate quantities. For the computations described in Sect. 4.1, we used the Robin-type technique [40] together with the Scott–Vogelius elements of degree 4. The order of approximation for the numerical method is \(h^{7/2}\) in the gradient norm.

The remaining results were computed using the lowest-order Taylor–Hood approximation. To implement the Navier-slip boundary condition, we used Nitsche’s method [21, 41, 42] to enforce slip conditions in the limit of small mesh size. The details regarding numerical implementation of (1) together with boundary conditions (2) and (6), are given in [21]. The boundary integrals are approximated to order \(h^2\), but the order of approximation for the numerical method is only of order \(h^{3/2}\) in the gradient norm.

8 Conclusions

We have shown that examining the Stokes paradox from different angles enriches the understanding of the phenomenon. The approaches dovetail together in the final analysis, but they allow answers to different questions related to the paradox. Perhaps the most critical question relates to what goes wrong when we pose the Stokes problem on larger and larger domains. We explored two different ways to consider this question, via numerical simulation for general domains and analytical solutions on specific domains. Fortunately, they give the same advice as to what happens in the limit, and this agrees with the functional analysis formulation of the problem on an infinite domain. We showed that the Stokes paradox can arise in other flow problems as well.