Skip to main content
Erschienen in: BIT Numerical Mathematics 1/2021

Open Access 07.08.2020

An accurate integral equation method for Stokes flow with piecewise smooth boundaries

verfasst von: Lukas Bystricky, Sara Pålsson, Anna-Karin Tornberg

Erschienen in: BIT Numerical Mathematics | Ausgabe 1/2021

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

Two-dimensional Stokes flow through a periodic channel is considered. The channel walls need only be Lipschitz continuous, in other words they are allowed to have corners. Boundary integral methods are an attractive tool for numerically solving the Stokes equations, as the partial differential equation can be reformulated into an integral equation that must be solved only over the boundary of the domain. When the boundary is at least \(C^1\) smooth, the boundary integral kernel is a compact operator, and traditional Nyström methods can be used to obtain highly accurate solutions. In the case of Lipschitz continuous boundaries, however, obtaining accurate solutions using the standard Nyström method can require high resolution. We adapt a technique known as recursively compressed inverse preconditioning to accurately solve the Stokes equations without requiring any more resolution than is needed to resolve the boundary. Combined with a periodic fast summation method we construct a method that is \(\mathcal {O}(N\log N)\) where N is the number of quadrature points on the boundary. We demonstrate the robustness of this method by extending an existing boundary integral method for viscous drops to handle the movement of drops near corners.
Hinweise
Communicated by Gunilla Kreiss.

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

1 Introduction

The Stokes equations are used to model slowly moving, highly viscous, fluid flow. They can be thought of as the zero Reynolds number limit of the Navier–Stokes equations. Of the many applications of the Stokes equations, they are often used to model particle suspensions including solid particles [4, 19], drops [25, 31, 32], or vesicles [33]. Even for non-zero Reynolds numbers, the Stokes equations often describe very well the flow near a solid boundary, and can therefore be used to derive effective slip boundary conditions for problems at higher Reynolds numbers [1, 5].
An advantage of using the Stokes equations over the Navier–Stokes equations is that the Stokes equations are linear and elliptic, allowing us to recast them as a boundary integral equation (BIE) [20, 25, 34]. BIEs have several nice properties. All the information needed to solve a BIE is confined to the boundary of the domain; this leads to an immediate dimension reduction. If the boundary of the domain is at least \(C^1\) smooth, the Stokes equations can be represented as a second-kind Fredholm equation [28]. After discretization the condition number of the resulting linear system is independent of the number of discretization points used, meaning that very highly accurate solutions are obtainable. Traditionally one major drawback of BIEs was the need to solve dense linear systems. However, by using efficient iterative solvers such as GMRES [35], combined with fast matrix vector products [8, 23], the cost to solve the \(N\times N\) dense linear system can be reduced to \(\mathcal {O}(N)\) or \(\mathcal {O}(N\log N)\), where N is the number of discretization points on the boundary of the domain.
In this paper, we will be considering wall-bounded, periodic Stokes flow. For particulate flows, such models are useful because they allow for the computation of various time averaged quantities over a relatively small reference cell, without the need to simulate an unfeasibly large domain. BIEs have been successfully applied to such problems [24, 32, 41].
Lipschitz continuous boundaries admit corners, specifically they allow for countable number of corners with the angle \(\theta \) of each corner satisfying \(0< \theta < 2\pi \) (thus prohibiting cusps). Solving PDEs on Lipschitz domains to high accuracy everywhere in the domain is in general quite challenging, independent of the numerical method used; see for example the discussion in [7]. When solving boundary integral equations on domains with corners, the standard Nyström method fails to achieve optimal accuracy [3]. While the underlying equation has a unique solution, the layer density defined on the boundary can become weakly singular at corner points, thus reducing the accuracy of regular quadrature rules, such as composite Gauss–Legendre quadrature. One approach to solving this problem is to cluster additional quadrature points near the corners. This of course dramatically increases the number of unknowns, while at the same time the accuracy of such an approach is limited [3, 12]. A recent paper [40] demonstrates an approach that automates both the spatial adaptivity and the order of the quadrature (similar to hp adaptivity) to achieve high accuracy for complicated domains containing several corners. Other approaches have been developed, some of which use elegant kernel-dependent custom quadrature rules [34, 36]. In this paper, we use a kernel-independent method known as recursively compressed inverse preconditioning [10, 12, 13]. This method has the advantage of being relatively simple to implement on top of existing code, and does not introduce any additional unknowns to the linear system that must be solved. We demonstrate the robustness of this method when applied to periodic Stokes flow by solving problems involving moving viscous drops.

2 Governing equations

The governing equations are the steady incompressible Stokes equations,
$$\begin{aligned}&-\mu \Delta {\mathbf {u}}({\mathbf {x}}) + \nabla p({\mathbf {x}}) = \mathbf {0},\quad {\mathbf {x}}\in \varOmega , \end{aligned}$$
(1a)
$$\begin{aligned}&\nabla \cdot {\mathbf {u}}({\mathbf {x}}) = 0, \quad {\mathbf {x}}\in \varOmega , \end{aligned}$$
(1b)
where \({\mathbf {u}}\) is the velocity of the fluid, p is its pressure and \(\mu \) is its viscosity.
In this paper we will restrict our attention to periodic channel flow as depicted in Fig. 1. For boundary conditions, we will prescribe Dirichlet conditions on the velocity, and enforce periodicity in the \(x_1\) direction on the velocity. In addition, we impose a pressure drop across the reference cell, so that the pressure itself is not periodic, but the gradient of the pressure is,
$$\begin{aligned}&{\mathbf {u}}({\mathbf {x}}) = \mathbf {g}({\mathbf {x}}),\quad {\mathbf {x}}\in \varGamma , \end{aligned}$$
(2a)
$$\begin{aligned}&{\mathbf {u}}({\mathbf {x}}) = {\mathbf {u}}({\mathbf {x}}+ L), \quad {\mathbf {x}}\in \varOmega , \end{aligned}$$
(2b)
$$\begin{aligned}&p({\mathbf {x}}) - p({\mathbf {x}}+ L) = p_0 - p_1, \quad {\mathbf {x}}\in \varOmega . \end{aligned}$$
(2c)
To ensure the incompressibility condition is satisfied, the boundary data \(\mathbf {g}\) must satisfy the compatibility condition,
$$\begin{aligned} \int _\varGamma {\mathbf {u}}\cdot {\mathbf {n}}~\text {d}S = 0. \end{aligned}$$

3 Boundary integral formulation

For clarity of exposition, in this section and the next we will present the boundary integral formulation, and the treatment for the corners on a non-periodic domain. The periodicity will be addressed in Sect. 5.
Consider the Stokes equations (1) defined inside a Lipschitz domain, along with Dirichlet boundary conditions on the velocity. For the non-periodic case, we will not be concerned with the pressure. The normal vector along the boundary \(\varGamma \) always points into the fluid. See Fig. 2 for a sketch of such a domain.
As given in [29, Chapter 2], a solution to the forced Stokes equations
$$\begin{aligned} -\mu \Delta {\mathbf {u}}+ \nabla p = \mathbf {g} \delta ({\mathbf {x}}- {\mathbf {x}}_0), \end{aligned}$$
is given by the velocity and pressure pair
$$\begin{aligned} u_j({\mathbf {x}}) = \frac{1}{4\pi \mu }G_{j\ell }({\mathbf {x}}- {\mathbf {x}}_0)g_\ell , \quad p({\mathbf {x}}) = \frac{1}{4\pi } p_j({\mathbf {x}}- {\mathbf {x}}_0)g_j. \end{aligned}$$
The stress tensor \(\sigma _{j\ell }\) at a point \({\mathbf {x}}\) is given by the combination of the velocity and pressure,
$$\begin{aligned} \sigma _{jm}&= \frac{1}{4\pi }\left( -\delta _{jm}p_\ell ({\mathbf {x}}- {\mathbf {x}}_0) + \frac{\partial G_{j\ell }}{\partial x_m}({\mathbf {x}}- {\mathbf {x}}_0) +\frac{\partial G_{m\ell }}{\partial x_j}({\mathbf {x}}- {\mathbf {x}}_0)\right) g_\ell \\&= \frac{1}{4\pi } T_{j\ell m}({\mathbf {x}}- {\mathbf {x}}_0)g_\ell . \end{aligned}$$
Here and in the remainder of this paper we have used the Einstein summation convention, where summation over repeated indices is implied. The letters i and k are reserved for later use and are therefore not used as indices.
In \(\mathbb {R}^2\), we have that
$$\begin{aligned} G_{j\ell }({\mathbf {r}}) = -\delta _{j\ell } \log (r) + \frac{r_j r_\ell }{r^2},\quad p_j({\mathbf {r}}) = 2\frac{r_j}{r^2}, \quad T_{j\ell m}({\mathbf {r}}) = -4\frac{r_j r_\ell r_m}{r^4}. \end{aligned}$$
Here we have used r to denote the Euclidean norm of \({\mathbf {r}}:= {\mathbf {x}}- {\mathbf {x}}_0\).
The tensors \(G_{j\ell }\) and \(T_{j\ell m}\) are called the Stokeslet and stresslet respectively. From the Stokeslet and stresslet we can define the single- and double-layer potentials, \(\mathbb {S}[{\mathbf {q}}]({\mathbf {x}})\) and \(\mathbb {D}[{\mathbf {q}}]({\mathbf {x}})\), as a convolution of the Stokeslet and stresslet with a density function \({\mathbf {q}}({\mathbf {x}})\) defined over \(\varGamma \). Explicitly,
$$\begin{aligned} \mathbb {S}[{\mathbf {q}}]({\mathbf {x}})&= \frac{1}{4\pi \mu }\int _\varGamma q_j({\mathbf {y}})G_{j \ell }({\mathbf {x}}- {\mathbf {y}})~\text {d}s({\mathbf {y}}),&\quad {\mathbf {x}}\in \varOmega ,\\ \mathbb {D}[{\mathbf {q}}]({\mathbf {x}})&= -\frac{1}{4\pi }\int _\varGamma q_j({\mathbf {y}})T_{j\ell m}({\mathbf {x}}- {\mathbf {y}}) n_m({\mathbf {y}})~\text {d}s({\mathbf {y}}),&\quad {\mathbf {x}}\in \varOmega , \end{aligned}$$
where \({\mathbf {n}}\) is the unit normal vector pointing into the fluid.
Following [10], we will express the solution to (1) as a combination of the single- and double-layer potentials
$$\begin{aligned} {\mathbf {u}}({\mathbf {x}}) = 2\mathbb {D}[{\mathbf {q}}]({\mathbf {x}}) + \eta \mathbb {S}[{\mathbf {q}}]({\mathbf {x}}) := \mathbb {K}[{\mathbf {q}}]({\mathbf {x}}), \quad {\mathbf {x}}\in \varOmega , \end{aligned}$$
(3)
where \(\eta > 0\) is an arbitrary constant which governs the relation between the single and double layer potentials. To obtain a well-conditioned system \(\eta \) cannot be too large; we will always take \(\eta = 1\).
This equation is valid for \({\mathbf {x}}\in \varOmega \). To obtain a boundary integral equation (BIE) we will take the limit of (3) as \({\mathbf {x}}\) approaches a point \({\mathbf {x}}_0\in \varGamma \). To do this, we will need the limiting values of the single- and double-layer potentials,
$$\begin{aligned} \lim \limits _{ {\mathbf {x}}\rightarrow {\mathbf {x}}_0\in \varGamma } \mathbb {S}[{\mathbf {q}}]({\mathbf {x}})&= \mathbb {S}[{\mathbf {q}}]({\mathbf {x}}_0),\\ \lim \limits _{ {\mathbf {x}}\rightarrow {\mathbf {x}}_0\in \varGamma } \mathbb {D}[{\mathbf {q}}]({\mathbf {x}})&= -\frac{1}{2}{\mathbf {q}}({\mathbf {x}}_0) + \mathbb {D}[{\mathbf {q}}]({\mathbf {x}}_0). \end{aligned}$$
Applying these limits to (3) and matching it to the boundary condition \(\mathbf {g}\) yields the BIE
$$\begin{aligned} -{\mathbf {q}}({\mathbf {x}}_0) + \mathbb {K}[{\mathbf {q}}]({\mathbf {x}}_0) = \mathbf {g}({\mathbf {x}}_0), \end{aligned}$$
(4)
where \({\mathbf {x}}_0\in \varGamma \), and \(\mathbb {K}\) is the operator defined in (3) restricted to the boundary.
If \(\varGamma \) is a Lyapunov curve (see [4, Chapter 1] for a precise definition), then \(\mathbb {K}\) is a compact operator, with eigenvalues accumulating at zero [?, Chapter 15]. In this case (4) can be analyzed using Fredholm theory. In particular the Fredholm alternative applies, and in [10] this is used to demonstrate the existence and uniqueness of solutions. An alternative to the formulation (3) is the so-called completed double-layer formulation [?], [28]. This formulation has the advantage of not requiring the single-layer potential, which is weakly singular on the boundary. We have chosen (3) because numerical experiments [42] have shown it to be more stable for squeezing drops, and in the periodic case it allows us to naturally impose a global pressure gradient, as will be discussed in Sect. 5.
If, as in our case, \(\varGamma \) is only Lipschitz smooth, then \(\mathbb {K}\) is not compact, and Fredholm theory cannot be applied. Furthermore, the double-layer potential involves the normal vector, meaning that the double-layer kernel cannot be evaluated at any corner points on \(\varGamma \). Nonetheless, it can be shown that (4) has a unique solution, even when \(\varGamma \) is only Lipschitz continuous (see for example [?]). In this case the density function \({\mathbf {q}}\) is singular at the corner points, however, (3) can still be evaluated for any \({\mathbf {x}}\in \varOmega \), and (4) can be evaluated anywhere on \(\varGamma \) except at the corner points.

4 Numerical methods

To evaluate (4), we use the Nyström method, as described in [2, Chapter 4]. Let \(\gamma (s),~s\in [0,2\pi ]\) parameterize \(\varGamma \). The BIE (4) can be written in the abstract form
$$\begin{aligned} -q_\ell (t) + \int _0^{2\pi } K_{j\ell }(t, s)q_j(s)|\gamma '(s)|~\text {d}s = g_\ell (t), \quad t \in [0,2\pi ], \end{aligned}$$
(5)
where K in this case is the kernel of \(\mathbb {K}\), i,e.,
$$\begin{aligned} K_{j\ell }(s,t) = \frac{1}{2\pi }T_{j\ell m}(\gamma (t)-\gamma (s)) n_m(s)+ \frac{\eta }{4\pi \mu }G_{j\ell }(\gamma (t)-\gamma (s)). \end{aligned}$$
(6)
We will approximate the integral in (5) using a composite Gauss–Legendre quadrature scheme of \(n_\text {pan}\) panels and \(n_q\) quadrature points per panel,
$$\begin{aligned} -q_\ell (t) + \sum \limits _{n=1}^{N} K_{j\ell }(t,s_n)q_j(s_n)| \gamma '(s_n)| w_n = g_\ell (t), \quad t\in [0,2\pi ], \end{aligned}$$
(7)
where \(N = n_\text {pan}n_q\) is the total number of quadrature points, and \(w_n\) is the quadrature weight corresponding to the quadrature point \(s_n\). For the remainder of this paper we will assume \(n_q = 16\).
We will then enforce (7) at the quadrature points \(s_m,~m=1,\ldots ,N\) to get the linear system
$$\begin{aligned} -q_\ell (s_m) + \sum \limits _{n=1}^{N} K_{j\ell }(s_m,s_n) q_j(s_n)|\gamma '(s_n)| w_n = g_\ell (s_m), \quad m=1,\ldots , N. \end{aligned}$$
Here the point values of the density function q are unknown. When setting up the composite quadrature rule, care must be taken to ensure that each corner on \(\varGamma \) is at the intersection of two panels. In this way we avoid difficulties arising from trying to evaluate the normal vector on a corner, as the Gauss–Legendre quadrature points cluster near but are never located at panel endpoints.

4.1 Singular quadrature

When \(t=s\), the kernel of the double-layer potential \(T_{j\ell m}(0)n_m(s)\) has a removable singularity, provided that t is not a corner point. The Stokeslet, however, must be handled using a specialized quadrature technique. We will use the approach given in [26]. We begin by writing the single-layer potential in complex variables,
$$\begin{aligned} \mathbb {S}[q](z)= & {} \frac{1}{8\pi \mu }\int _\varGamma q(\tau )|\text {d}\tau | + \frac{1}{4\pi \mu }\int _\varGamma q(\tau )\log (|\tau - z|)|\text {d}\tau | \nonumber \\&-\frac{1}{8\pi \mu }\int _\varGamma \overline{q(\tau )}\frac{\tau - z}{\overline{\tau } - \overline{z}}|\text {d}\tau |, \end{aligned}$$
(8)
where we have introduced a slight abuse of notation to denote q(z) as density function \({\mathbf {q}}\) written as a complex number, i. e., \(z = x_1 + i x_2\) and \(q(z) = q_1({\mathbf {x}}) + i q_2({\mathbf {x}})\).
The only term in the complex formulation of the Stokeslet that does not have a finite limit as \(\tau \rightarrow z\) is the term with the logarithm. We will consider this integral over a single panel, \(\varGamma _k\). The panel extends from \(\alpha _1\) to \(\alpha _2\), with \(\alpha _1, \alpha _2\in \mathbb {C}\), and is parameterized by \(\alpha \in [\alpha _1, \alpha _2]\). Let \(\alpha \) be parameterized as,
$$\begin{aligned} \alpha (t) = \frac{\alpha _1 + \alpha _2}{2} + \psi t, \end{aligned}$$
where \(t \in [-1, 1]\) and \(\psi = (\alpha _2 - \alpha _1)/2\). The \(\log \) term in the integral above can be rewritten in the form,
$$\begin{aligned} \log (|\tau (\alpha ) - z|)= & {} \log \left( \biggr | \frac{\psi (\tau (\alpha ) - z)}{\alpha - \alpha _z}\frac{\alpha - \alpha _z}{\psi }\biggr |\right) \\= & {} \log \left( \biggr |\psi \frac{\tau (\alpha ) - z}{\alpha - \alpha _z}\biggr |\right) + \log \left( \biggr |\frac{\alpha - \alpha _z}{\psi }\biggr |\right) , \end{aligned}$$
where \(\tau (\alpha _z) = z\). Define \(t_z\) to be such that \(\alpha (t_z) = \alpha _z\). Then we have that
$$\begin{aligned} \frac{\alpha - \alpha _z}{\psi } = t - t_z, \end{aligned}$$
which allows us to rewrite the \(\log \) integral in (8) as
$$\begin{aligned} \int _{\varGamma _k} q(\tau )\log (|\tau - z|)|\text {d}\tau |&= \int _{\varGamma _k} q(\tau (\alpha ))\log (|\tau (\alpha ) - z|)|\tau '(\alpha )|~\text {d}\alpha \\&=\int _{\varGamma _k} q(\alpha )\log \left( \biggr |\psi \frac{\tau (\alpha ) - z}{\alpha - \alpha _z}\biggr |\right) ~\text {d}\alpha \\&\quad + \int _{-1}^1 q(\alpha (t))\log (|t - t_z|)|\tau '(\alpha (t))|~\text {d}t. \end{aligned}$$
The first integral can be evaluated using the fact that
$$\begin{aligned} \lim \limits _{\alpha \rightarrow \alpha _z} \frac{\tau (\alpha ) - z}{\alpha - \alpha _z} = \tau '(\alpha _z). \end{aligned}$$
To evaluate the second integral, we expand the density q(t) as a polynomial series to obtain,
$$\begin{aligned} I(t_z) \!= \!\int _{-1}^1 q(\alpha (t))\log (|t \!-\! t_z|)|\tau '(\alpha (t))|~\text {d}t \approx \sum \limits _{j=0}^{n_q \!-\! 1} c_j \int _{-1}^1 t^j \log (|t \!-\! t_z|)|\tau '(\alpha (t))|\!~\!\text {d}t. \end{aligned}$$
Denoting \(\mathbf {h} = h_j, ~j=0,\ldots n_q - 1\) as
$$\begin{aligned} h_j(t_z) = \int _{-1}^1 t^j \log (|t - t_z|)|\tau '(\alpha (t))|~\text {d}t, \end{aligned}$$
allows us to write I in the compact form
$$\begin{aligned} I(t_z) \approx \sum \limits _{j=0}^{n_q - 1} c_j h_j = \mathbf {c}^T \mathbf {h}(t_z). \end{aligned}$$
The integrals in \(\mathbf {h}\) can all be computed analytically using a recursion relation. The vector \({\mathbf {c}}= \{c_j\}_{j=0}^{n_q - 1}\) can be computed by solving the Vandermonde system
$$\begin{aligned} \varvec{\mathbf {q}} = V {\mathbf {c}}, \end{aligned}$$
where \(\varvec{\mathbf {q}} = \{q(t_0), \ldots , q(t_{n_{q-1}})\}\), and V is the Vandermonde matrix. Thus I can be approximated by
$$\begin{aligned} I(t_z) \approx (V^{-1} \varvec{\mathbf {q}})^T\mathbf {h}(t_z) = \varvec{\mathbf {q}}^T(V^{-1})^T \mathbf {h}(t_z) = \varvec{\mathbf {q}}^T \varvec{\omega }(t_z), \end{aligned}$$
where \(\varvec{\omega }(t_z)\) is the solution to the linear system \(V^T\varvec{\omega }(t_z) = {\mathbf {h}}(t_z)\). The stability of these computations is discussed in [14, Appendix A], here we simply note that the computations are stable up to at least \(n_q = 40\). Note that this linear system is independent of \(\varvec{\mathbf {q}}\). For now we will need the values of I only at the quadrature points \(t_0, \ldots , t_{n_{q-1}}\). Since we have rescaled and rotated the panel \(\varGamma _k\) to run from \(-1\) to 1, the corrected weights \(\varvec{\omega }(t_z)\) can be precomputed for each of the quadrature points \(t_0, \ldots , t_{n_{q-1}}\).
Quadrature points on adjacent panels will also need to be corrected. How many points to correct depends on accuracy considerations, but for \(n_q = 16\), numerical results have shown that if all the panels are the same size (in parameter space), then correcting the four closest quadrature points in each adjacent panel is sufficient. Again, these corrections can be precomputed.

4.2 Recursively compressed inverse preconditioning

As previously mentioned, in the case of Lipschitz domains, (4) has a unique solution. However at the corners, the density function \({\mathbf {q}}\) becomes singular. Therefore Gauss–Legendre quadrature fails to accurately integrate the integrands in (4) near the corners. Local panel refinement around the corners is one way to mitigate this issue; however, this approach adds a potentially large number of new unknowns, see Fig. 3. In addition, the condition number of the resulting locally refined linear system grows with the number of quadrature points.
An alternative approach, recursively compressed inverse preconditioning (RCIP) [12, 13], can achieve the same accuracy as local refinement by performing a simple precomputation. As the desired accuracy requirements increase, the precomputation grows linearly with \(n_{\text {sub}}\), however, both the size and the condition number of the final linear system remain fixed.
The main idea behind RCIP is to transform the density function \({\mathbf {q}}\) in (4) into a transformed density \(\tilde{{\mathbf {q}}}\) that is piecewise smooth everywhere on \(\varGamma \). Then Gauss–Legendre quadrature can be effectively used. To create this transformation, the operator \(\mathbb {K}\) is written as
$$\begin{aligned} \mathbb {K} = \mathbb {K}^\circ + \mathbb {K}^*, \end{aligned}$$
(9)
where \(\mathbb {K}^\circ \) is compact away from the corners, and \(\mathbb {K}^*\) describes the corner interactions (note that \(\mathbb {K}^*\) is not the adjoint of \(\mathbb {K}\)). These operators will be defined precisely shortly. We then define the transformed density as
$$\begin{aligned} \tilde{{\mathbf {q}}} = (-{\mathcal {I}}+ \mathbb {K}^*){\mathbf {q}}, \end{aligned}$$
(10)
where \({\mathcal {I}}\) is the identity operator.
Using the split (9), and the transformed density (10), we can convert (4) to the transformed BIE for \(\tilde{{\mathbf {q}}}\),
$$\begin{aligned} ({\mathcal {I}}+ \mathbb {K}^\circ \mathcal {R})\tilde{{\mathbf {q}}}({\mathbf {x}}_0) = \mathbf {g}({\mathbf {x}}_0), \quad {\mathbf {x}}_0\in \varGamma , \end{aligned}$$
(11)
where \(\mathcal {R} = (-{\mathcal {I}}+ \mathbb {K}^*)^{-1}\). If we assume \(\mathbf {g}\) is piecewise smooth, it can be immediately seen that \(\tilde{{\mathbf {q}}}\) must also be piecewise smooth. Since \(\mathbb {K}^\circ \) is a smoothing operator, then \(\mathbb {K}^\circ \mathcal {R}\tilde{{\mathbf {q}}}\) will be smooth everywhere. Then, by contradiction, in order for (11) to hold, \({\mathcal {I}}\tilde{{\mathbf {q}}} = \tilde{{\mathbf {q}}}\) must be piecewise smooth.
It remains to discretize (11). One possibility for discretization is to use two meshes: a coarse mesh \(\varGamma _{\text {coa}}\) on which \(\mathbb {K}\) is discretized, and a fine mesh \(\varGamma _{\text {fin}}\), on which \(\mathcal {R}\) is discretized. To get \(\varGamma _{\text {fin}}\) from \(\varGamma _{\text {coa}}\) we first designate the two panels on either side of corner j to be the subset \(\varGamma ^*_j\subset \varGamma _{\text {coa}}\), and define \(\varGamma ^\circ \) to be \(\varGamma _{\text {coa}}{\setminus } \cup _{j=1}^{n_c} \varGamma ^*_j\), where \(n_c\) is the number of corners. The panels on either side of corner j in \(\varGamma ^*_j\) are then dyadically refined \(n_{\text {sub}}\) times to get \(\varGamma ^*_{j,{\text {fin}}}\). The fine mesh is defined as \(\varGamma _{\text {fin}}= \varGamma ^\circ \cup \left( \cup _{j=1}^{n_c} \varGamma ^*_{j,{\text {fin}}}\right) \). An example of this is shown in Fig. 4.
We will define \(\mathbb {K}^\circ \) and \(\mathbb {K}^*\) to be the operator \(\mathbb {K}\) restricted to the domains \(\varGamma ^\circ \) and \(\varGamma ^*\) respectively. Note that \(\mathbb {K}^\circ \) is a compact operator. The operator \(\mathbb {K}^\circ \) can be discretized on \(\varGamma _{\text {coa}}\) to get the matrix \(\mathbf {K}^\circ \). This matrix is equivalent to the discretization of \(\mathbb {K}\) on \(\varGamma _{\text {coa}}\), but with the entries corresponding to both source and target being outside \(\varGamma ^\circ \) set to zero.
The operator \(\mathcal {R}\) could be discretized on \(\varGamma _{\text {fin}}\). This would, however, not be much use, since it would introduce a large number of unknowns. Instead we will exploit a forward recursion relation to construct \({\mathbf {R}}\) on a sequence of meshes covering larger and larger portions of \(\varGamma ^*_j\). To define the recursion relation, we will need to provide some definitions of different types of meshes. For each corner j, define a sequence of meshes \(\varGamma ^*_{j,\ell },~\ell =1,\ldots , n_{\text {sub}}\), with \(\varGamma ^*_{j,\ell -1}\subset \varGamma ^*_{j,\ell }\) and \(\varGamma ^*_{j,n_{\text {sub}}} = \varGamma ^*_{j}\). On each \(\varGamma ^*_{j,\ell }\) we will have a six panel type-b mesh, \(\varGamma ^*_{j,\ell b}\), and a four panel type-c mesh \(\varGamma ^*_{j,\ell c}\). The type-b and type-c panels will be related as shown in Fig. 5.
To interpolate between type-b and type-c meshes defined over the same interval, we introduce the prolongation matrix \({\mathbf {P}}_{bc}\). In addition, defining \({\mathbf {W}}_b\) and \({\mathbf {W}}_c\) to be a diagonal matrix containing quadrature weights on the type-b and type-c meshes respectively, we can define the weighted prolongation matrix \({\mathbf {P}}_{Wbc}\) as
$$\begin{aligned} {\mathbf {P}}_{Wbc} = {\mathbf {W}}_b {\mathbf {P}}{\mathbf {W}}_c^{-1}. \end{aligned}$$
Let \(\mathbf {K}_{j,\ell b}\) be the discretization of \(\mathbb {K}\) on \(\varGamma ^*_{j,\ell b}\). This matrix will be of size \(6n_q\) for scalar problems, or \(12n_q\) for vector problems in \(\mathbb {R}^2\). Define \({\mathbf {R}}_{j,1}\) as
$$\begin{aligned} {\mathbf {R}}_{j,1} = {\mathbf {P}}_{Wbc}^T\left( -{\mathbf {I}}_b + \mathbf {K}_{j,1b}\right) {\mathbf {P}}_{bc}. \end{aligned}$$
We then compute the sequence \({\mathbf {R}}_{j,2}, \ldots , {\mathbf {R}}_{j,n_{\text {sub}}}\) using the recursion relation
$$\begin{aligned} {\mathbf {R}}_{j,\ell } = {\mathbf {P}}_{Wbc}^T\left( \mathbb {F}\{{\mathbf {R}}_{j,\ell -1}^{-1}\} - {\mathbf {I}}_b^\circ + \mathbf {K}^\circ _{j,\ell b}\right) ^{-1}{\mathbf {P}}_{bc}, \end{aligned}$$
(12)
where \({\mathbf {I}}_b^\circ \) and \(\mathbf {K}^\circ _{j,\ell b}\) are the identity matrix and \(\mathbf {K}_{j,\ell b}\) with the entries in the two panels around the corner zeroed out respectively. The operator \(\mathbb {F}\{\cdot \}\) zero pads the argument to turn a matrix defined on \(\varGamma ^*_{j,\ell c}\) into one defined on \(\varGamma ^*_{j,(\ell +1)b}\).
Once we have the matrices \(\mathbf {R}_{j,n_{\text {sub}}}\), we can construct \(\hat{{\mathbf {R}}}\), the discretization of \(\mathcal {R}\) on \(\varGamma _{\text {coa}}\). Outside of \(\varGamma ^*\), \(\mathbb {K}_*\) is zero, so from the definition of \(\mathcal {R}\), we obtain that \(\hat{{\mathbf {R}}}\) must be the identity matrix over \(\varGamma ^\circ \). Over \(\varGamma ^*_j\), the discretization of \(\mathcal {R}\) is just \(\mathbf {R}_{j,n_{\text {sub}}}\).
To handle the log singularity when assembling the matrix \(\mathbf {K}_{j,1b}\) and \(\mathbf {K}^\circ _{j,\ell b}\), the same techniques as described in Sect. 4.1 can be used. Some bookkeeping is needed to account for the fact that the panels are not equally sized in parameter space. In some cases adjacent panels will be double or half the size; however, the modifications for the quadrature weights can still be precomputed for each case.
For wedge shaped corners, the domain segments \(\varGamma _{j,\ell b}\) are self similar for \(\ell = 1, \ldots , n_{\text {sub}}\) and \(j = 1, \ldots , n_c\). If the operator \(\mathbb {K}\) is scale invariant, then \(\mathbf {K}^\circ _{j,\ell b}\) will be independent of \(\ell \), and the recursion relation (12) becomes a fixed point iteration which can be iterated to find \({\mathbf {R}}_j\) to a desired tolerance without specifying \(n_{\text {sub}}\) [12, Section 12] . Unfortunately, in our case, because the single-layer potential contains a logarithmic term, \(\mathbb {K}\) is not scale invariant, so we cannot use this idea, and \(n_{\text {sub}}\) must be specified a priori. A formulation involving just the double-layer potential [?], [28] would not suffer from this drawback and could be formulated as fixed point iteration.

4.3 Fast multiplication

The fully discrete transformed BIE defined on \(\varGamma _{\text {coa}}\) is
$$\begin{aligned} \left( {\mathbf {I}}+ \mathbf {K}^\circ \hat{{\mathbf {R}}}\right) \tilde{{\mathbf {q}}} = \mathbf {g}, \end{aligned}$$
(13)
which can be solved using GMRES. To accelerate the required matrix-vector products from \(\mathcal {O}(N^2)\) to something computationally feasible, fast summation methods are a necessity. To do this, we will rewrite \(\mathbf {K}\) and \(\hat{{\mathbf {R}}}\) as the block matrices
$$\begin{aligned} \mathbf {K} = \begin{pmatrix} \mathbf {K}^{**} &{} \quad \mathbf {K}^{*\circ }\\ \mathbf {K}^{\circ *} &{} \quad \mathbf {K}^{\circ \circ }\end{pmatrix}, \quad \hat{{\mathbf {R}}} = \begin{pmatrix} {\mathbf {R}}&{} \quad \mathbf {0} \\ \mathbf {0} &{}\quad {\mathbf {I}}^\circ \end{pmatrix}. \end{aligned}$$
It follows that \(\mathbf {K}^\circ \) can be expressed as
$$\begin{aligned} \mathbf {K}^\circ = \mathbf {K} - \begin{pmatrix} \mathbf {K}^{**} &{}\quad \mathbf {0} \\ \mathbf {0} &{}\quad \mathbf {0}\end{pmatrix} = \mathbf {K} - \mathbf {K}^*. \end{aligned}$$
Then (13) can be rewritten as
$$\begin{aligned} \left( {\mathbf {I}}+ \mathbf {K}\hat{{\mathbf {R}}} - \mathbf {K}^*\hat{{\mathbf {R}}}\right) \tilde{{\mathbf {q}}} = \mathbf {g}. \end{aligned}$$
The matrix vector product \(\hat{{\mathbf {R}}}\tilde{{\mathbf {q}}}\) can be done directly, since \(\hat{{\mathbf {R}}}\) is just the identity matrix with one \(8n_q \times 8n_q\) block for each corner. The remaining matrix vector products \(\mathbf {K}(\hat{{\mathbf {R}}}\tilde{{\mathbf {q}}})\) and \(\mathbf {K}^*(\hat{{\mathbf {R}}}\tilde{{\mathbf {q}}})\) can be computed with a fast summation method, reducing the cost from \(\mathcal {O}(N^2)\) to \(\mathcal {O}(N\log N)\) or \(\mathcal {O}(N)\), depending on the choice of fast summation method. We will use an \(\mathcal {O}(N\log N)\) method that can naturally handle periodic problems, as will be described in Sect. 5.

4.4 Post-processing

After we have computed \(\tilde{{\mathbf {q}}}\), we evaluate the velocity at a point \({\mathbf {u}}\in \varOmega \) by using the regular quadrature rule
$$\begin{aligned} u_\ell ({\mathbf {x}}) \approx \sum \limits _{n=1}^N K_{j\ell }({\mathbf {x}}, s_n)\hat{q}_j(s_n)|\gamma '(s_n)|w_n, \end{aligned}$$
where \(\hat{{\mathbf {q}}}=\hat{{\mathbf {R}}}\tilde{{\mathbf {q}}}\), and \(K_{j\ell }\) is defined in (6). This quadrature is as accurate as if we had access to the fine density defined on \(\varGamma _{\text {fin}}\). From the definitions of \(\tilde{{\mathbf {q}}}\) and \(\hat{{\mathbf {R}}}\), it is clear that outside of \(\varGamma ^*\), \(\hat{{\mathbf {q}}}\) and \({\mathbf {q}}\) are equivalent. On \(\varGamma ^*\), the transformed density \(\hat{{\mathbf {q}}}\) can be thought of as a weight corrected density function.
Both the double- and single-layer potentials contain integrals that become nearly singular when \(|t-s|\) is small. This causes the numerical errors from standard Gauss–Legendre quadrature to grow quite large when evaluating the integrals at any point close to a boundary. To handle this, the integrals are treated in the manner described in [32]. In short, the main idea is similar to that explained in Sect. 4.1 where the density is expanded as a polynomial series, and the integrals are computed analytically using recursion relations.

5 Periodicity

We now address the periodicity in (2). The periodic single- and double-layer potentials, \(\mathbb {S}^P[{\mathbf {q}}]({\mathbf {x}})\) and \(\mathbb {D}^P[{\mathbf {q}}]({\mathbf {x}})\) are defined as an infinite sum of the single- and double-layer potentials defined in Sect. 3,
$$\begin{aligned} \mathbb {S}^P[{\mathbf {q}}]({\mathbf {x}})&= \frac{1}{4\pi \mu }\sum \limits _{{\mathbf {p}}\in \mathbb {Z}^2} \int _\varGamma q_j({\mathbf {y}}) G_{j\ell }({\mathbf {x}}- {\mathbf {y}}- L{\mathbf {p}})~\text {d}s({\mathbf {y}}), \quad {\mathbf {x}}\in \varOmega , \end{aligned}$$
(14a)
$$\begin{aligned} \mathbb {D}^P[{\mathbf {q}}]({\mathbf {x}})&= \frac{1}{4\pi }\sum \limits _{{\mathbf {p}}\in \mathbb {Z}^2} \int _\varGamma q_j({\mathbf {y}}) T_{j\ell m}({\mathbf {x}}- {\mathbf {y}}- L{\mathbf {p}})n_m({\mathbf {y}})~\text {d}s({\mathbf {y}}), \quad {\mathbf {x}}\in \varOmega . \end{aligned}$$
(14b)
The interpretation of these periodic sums will be given in Sect. 5.1. With these operators we can define the periodic operator \(\mathbb {K}^P[{\mathbf {q}}]\),
$$\begin{aligned} \mathbb {K}^P[{\mathbf {q}}]({\mathbf {x}}) = 2\mathbb {D}^P[{\mathbf {q}}]({\mathbf {x}}) + \eta \mathbb {S}^P[{\mathbf {q}}]({\mathbf {x}}). \end{aligned}$$
(15)
Note that periodic sum is over \({\mathbf {p}}\in \mathbb {Z}^2\); in other words we are implying periodicity in both spatial dimensions, even though in our actual problems the periodicity will be only in one direction. The reason for this is that it allows us to exploit a more efficient fast-summation method. To enforce the periodicity in one dimension we will embed the channel, which is only periodic over a length \(L_1\) in the \(x_1\) direction, in a doubly periodic box of size \(L_1\times L_2\). A similar approach is used in [41] where a periodic flow in one direction is embedded in a two-dimensional periodic box. For simplicity we will assume here that \(L_1 = L_2 = L\), but this need not be the case, and only minor modifications are needed to use a rectangular periodic box.
As mentioned in Sect. 2, a constant pressure drop \(p_0 - p_1\) in the \(x_1\) direction is applied. In order to impose this we will add on an unknown mean velocity \(\langle {\mathbf {u}}\rangle \) to the layer formulation (4),
$$\begin{aligned} {\mathbf {u}}({\mathbf {x}}) = \mathbb {K}^P[{\mathbf {q}}]({\mathbf {x}}) + \langle {\mathbf {u}}\rangle . \end{aligned}$$
Note that \(\langle \cdot \rangle \) denotes a volume average over a full periodic cell, including the parts outside \(\varOmega \). This quantity has no physical meaning beyond imposing a pressure gradient. For a channel with flat parallel walls, a simple alternative would be to add a predetermined background flow, as done in [32].
The mean pressure gradient \(\langle \nabla p\rangle \) must balance the net effect of the wall friction [41]. From (15) the wall friction force is equal to \(\eta \int _\varGamma {\mathbf {q}}~\text {d}\varGamma \) [10]. The system we have to solve is thus given by
$$\begin{aligned}&-{\mathbf {q}}({\mathbf {x}}) + \mathbb {K}^P[{\mathbf {q}}]({\mathbf {x}}) + \langle {\mathbf {u}}\rangle = \mathbf {g}({\mathbf {x}}), \quad {\mathbf {x}}\in \varGamma ,\\&-\frac{1}{L^2}\eta \int _\varGamma q_1 ~\text {d}\varGamma = \langle \nabla p\rangle , \\&\int _\varGamma q_2 ~\text {d}\varGamma = 0. \end{aligned}$$
The splits for the two dimensional Stokeslet and stresslet, as well as truncation estimates are derived in [31]. Here we list the results.
To compute the infinite sums in (14) we will use the spectral Ewald method [22, 23]. In the spectral Ewald method the infinite sums in \(\mathbb {S}^P\) and \(\mathbb {D}^P\) are split into two parts based on a so-called Ewald decomposition: one that decays exponentially fast in real space, and one that decays exponentially fast in Fourier space. The real space sum can be truncated in real space, while the Fourier sum can be truncated in Fourier space. The splits for the two-dimensional Stokeslet and stresslet, as well as truncation estimates are derived in [32]. Here we list the results.

5.1 Ewald splits

The discretized periodic single- and double layer potentials are given by
$$\begin{aligned} \mathbb {S}^P[{\mathbf {q}}]({\mathbf {x}})&\approx u^G_\ell ({\mathbf {x}}) = \frac{1}{4\pi \mu }\sum \limits _{{\mathbf {p}}\in \mathbb {Z}^2}^*\sum \limits _{m=1}^M G_{j\ell }({\mathbf {x}}- {\mathbf {x}}_m -L{\mathbf {p}})q_j({\mathbf {x}}_m)w_m,\\ \mathbb {D}^P[{\mathbf {q}}]({\mathbf {x}})&\approx u^T_\ell ({\mathbf {x}}) = \frac{1}{4\pi }\sum \limits _{{\mathbf {p}}\in \mathbb {Z}^2}^*\sum \limits _{m=1}^M T_{j\ell s}({\mathbf {x}}- {\mathbf {x}}_m - L {\mathbf {p}})q_j({\mathbf {x}}_m)n_s({\mathbf {x}}_m)w_m, \end{aligned}$$
where the * in the summations over \({\mathbf {p}}\) indicates that we are excluding any \({\mathbf {p}}\) that makes \({\mathbf {x}}- {\mathbf {x}}_m - L{\mathbf {p}}= \mathbf {0}\). As written, these sums are not well-defined, as they are not convergent. By assuming that a pressure gradient is balancing the forces acting on the fluid, well-defined but slowly converging sums can be found in Fourier space. See [32, Section 4] for a discussion. Below we will introduce an Ewald decomposition for these sums that yields the same well-defined results, but achieves them by a split into two rapidly converging sums: one in real space, and one in Fourier space.
The discretized single-layer potential can be rewritten as the split
$$\begin{aligned} u^G_\ell ({\mathbf {x}})= & {} \sum \limits _{{\mathbf {p}}\in \mathbb {Z}^2}^* \sum \limits _{m=1}^M G_{j\ell }^R({\mathbf {x}}- {\mathbf {x}}_m + L{\mathbf {p}},\xi )q_j({\mathbf {x}}_m)w_m \\&+ \frac{1}{L^2}\sum \limits _{{\mathbf {k}}\ne 0}\hat{G}^F_{j\ell }({\mathbf {k}}, \xi )\sum \limits _{m=1}^M e^{-i{\mathbf {k}}\cdot ({\mathbf {x}}- {\mathbf {x}}_m)}q_j({\mathbf {x}}_m) w_m, \end{aligned}$$
where
$$\begin{aligned} G_{j\ell }^R({\mathbf {r}},\xi )&= \frac{1}{4\pi }\left( e^{-\xi ^2 r^2}\left( \frac{r_j r_\ell }{r^2}-\delta _{j\ell }\right) + \frac{\delta _{j\ell }}{2}E_1(\xi ^2 r^2)\right) \\ \hat{G}_{j\ell }^F({\mathbf {k}},\xi )&= \frac{1}{k^2}e^{-k^2 / (4\xi ^2)}\left( \delta _{j\ell } - \frac{k_j k_\ell }{k^2}\right) \left( 1 + \frac{k^2}{4\xi ^2}\right) , \quad {\mathbf {k}}\ne \mathbf {0}, \; k=|\mathbf {k}|. \end{aligned}$$
The \({\mathbf {k}}=\mathbf {0}\) mode in the Fourier expansion has been shown to be 0 [30]. The decomposition parameter \(\xi > 0\) is called the Ewald parameter and determines the relative sizes of the real and Fourier parts of \({\mathbf {u}}^G({\mathbf {x}})\). Note that \({\mathbf {u}}^G({\mathbf {x}})\) itself is independent of \(\xi \).
When applying the Nyström method to solve for the unknown pointwise density values, we do not wish to evaluate singular cases where \({\mathbf {x}}- {\mathbf {x}}_n + L{\mathbf {p}}= \mathbf {0}\). This contribution to \({\mathbf {u}}^G({\mathbf {x}})\) can be skipped in the real space sum, but for the Fourier sum we will have to subtract off the limiting value given by
$$\begin{aligned} \lim \limits _{r\rightarrow 0} (G_{j\ell }({\mathbf {r}}) - G^R_{j\ell }({\mathbf {r}}))q_j({\mathbf {x}}_n)w_n = \left( \frac{1}{2}\gamma + \log (\xi ) + 1\right) q_\ell ({\mathbf {x}}_n) w_n, \end{aligned}$$
where \(\gamma \) is the Euler–Mascheroni constant.
For the discretized double-layer potential, we use the split,
$$\begin{aligned} u^T_\ell ({\mathbf {x}})= & {} \sum \limits _{{\mathbf {p}}\in \mathbb {Z}^2}^* \sum \limits _{m=1}^M T_{j\ell s}^R({\mathbf {x}}- {\mathbf {x}}_m + L{\mathbf {p}},\xi )q_j({\mathbf {x}}_m)n_s({\mathbf {x}}_m)w_m \\&+ \frac{1}{L^2}\sum \limits _{{\mathbf {k}}\ne 0}\hat{T}^F_{j\ell s}({\mathbf {k}}, \xi )\sum \limits _{m=1}^M e^{-i{\mathbf {k}}\cdot ({\mathbf {x}}- {\mathbf {x}}_m)}q_j({\mathbf {x}}_m) n_s({\mathbf {x}}_m) w_m \\&+ \frac{1}{L^2}\sum \limits _{m=1}^M \hat{T}^{F,0}_{j\ell s}({\mathbf {x}}_m) q_j({\mathbf {x}}_m)n_s({\mathbf {x}}_m) w_m. \end{aligned}$$
where
$$\begin{aligned} \begin{aligned} T_{j\ell s}^R({\mathbf {r}},\xi )&= \frac{1}{4\pi }e^{-\xi ^2 r^2}\left( 2 \xi ^2 (\delta _{j\ell } r_s + \delta _{js}r_\ell + \delta _{\ell s}r_j) - \frac{4 r_j r_\ell r_s}{r^4}(1 + \xi ^2 r^2)\right) ,\\ \hat{T}^F_{j\ell s}({\mathbf {k}}, \xi )&= \!\frac{i}{k^2} e^{-k^2/(4\xi ^2)}\left( \delta _{j\ell }k_s \!+\! \delta _{j s}k_\ell \!+\! \delta _{\ell s}k_j - \frac{2 k_j k_\ell k_s}{k^2}\right) \left( 1\! +\! \frac{k^2}{4\xi ^2}\right) , \quad {\mathbf {k}}\ne \mathbf {0}. \end{aligned} \end{aligned}$$
For the \({\mathbf {k}}= \mathbf {0}\) mode, the choice
$$\begin{aligned} \hat{T}^{F,0}_{j\ell s}({\mathbf {x}}) = \delta _{\ell s}x_j, \end{aligned}$$
(16)
guarantees zero mean-flow though the reference cell [18].
For the stresslet, the limit
$$\begin{aligned} \lim _{r\rightarrow 0} (T_{j\ell s}({\mathbf {r}}) - T^R_{j\ell s}({\mathbf {r}})) q_\ell n_s = \mathbf {0}, \end{aligned}$$
so no limiting value needs to be subtracted when \({\mathbf {r}}= \mathbf {0}\).
To compute these sums, it is necessary to truncate them. Fortunately, both these sums decay exponentially fast, and they can be truncated to a desired tolerance following the estimates in [32]. With appropriate scaling of the decomposition parameter, the real space part is computed in \(\mathcal {O}(N)\) time and the Fourier space part is accelerated to \(\mathcal {O}(N\log N)\) using the fast Fourier transform. In order to use FFTs, the source points are spread to a uniform grid where the computations for the Fourier space sum are carried out. The result is then gathered from the uniform grid to the target points. The spreading and gathering is done using truncated Gaussians whose shape parameter is selected to minimize the approximation error for a given support. For efficiency, fast Gaussian gridding [9] can be used in both the spreading and the gathering steps. For more details see [32].
A numerical difficulty in the periodic formulation lies in the fact that the Ewald representation of the stresslet is not translation invariant due to the zero mode (16). This means that the submatrices \({\mathbf {R}}_j\) are different for each corner, even if the corners have the exact same shape. Therefore to assemble \(\mathbf {R}_j\) we first assemble the translation invariant part, and then add on (16) only at the end. Additionally, to avoid roundoff error, for large \(n_{\text {sub}}\), (where the smallest \(\varGamma ^*_{j,\ell }\) is \(\mathcal {O}(10^{-16})\) or less) we introduce a local coordinate system for each corner centered at \({\mathbf {x}}= \mathbf {0}\).

6 Numerical examples

To test the periodization scheme, we can compare to a known exact solution. Pressure driven pipe flow creates the well-known Poiseuille parabolic flow profile in the \(x_2\) direction. The exact solution for flow through a flat channel with top wall at \(x_2 = 1\) and bottom wall at \(x_2 = 0\) is given by
$$\begin{aligned} \mathbf {u}^{\text {exact}}({\mathbf {x}}) = \left\langle -\frac{(p_1 - p_0) x_2(x_2 - 1) }{2 L\mu }, 0 \right\rangle \end{aligned}$$
Note that this flow is constant in the \(x_1\) direction, and therefore also periodic in the \(x_1\) direction. As can be seen in Table 1, using only 8 panels per wall allows us to achieve a relative error of \(10^{-11}\) everywhere up to a distance of \(10^{-3}\) from the boundary.
Table 1
Maximum relative errors in a pipe flow simulation along lines parallel to the top wall. As the target points get closer to the wall, the integrands become more challenging to evaluate accurately, but special quadrature is activated giving high accuracy everywhere using a small amount of panels
\(n_{\text {pan}}\) per wall
Distance from wall
 
0.5
0.1
0.01
0.001
1
\(1.64\times 10^{-1}\)
\(2.07\times 10^{0}\)
\(2.10\times 10^{1}\)
\(8.44\times 10^{1}\)
2
\(1.14\times 10^{-4}\)
\(8.15\times 10^{-1}\)
\(4.65\times 10^{0}\)
\(1.28\times 10^{1}\)
4
\(5.95\times 10^{-10}\)
\(1.12\times 10^{-9}\)
\(5.03\times 10^{-9}\)
\( 7.07\times 10^{-9}\)
8
\(8.88\times 10^{-15}\)
\(1.25\times 10^{-13}\)
\(2.02\times 10^{-13}\)
\( 1.08\times 10^{-11}\)
16
\(7.77\times 10^{-15}\)
\(1.06\times 10^{-13}\)
\(1.60\times 10^{-13}\)
\( 7.90\times 10^{-12}\)
Another test is to prescribe Dirichlet boundary conditions on the solid walls. We will peform two types of tests: convergence towards a known, smooth solution, and self-convergence test towards an unknown solution. For the known smooth solution, we will prescribe a constant shear flow \({\mathbf {u}}= \langle x_2, 0\rangle \) as boundary conditions on the top and bottom wall. The bottom wall is now only piecewise smooth. To recover a shear flow in the interior from the BIE solution, we must prescribe no pressure drop from inlet to outlet, i.e., \(\langle \nabla p\rangle = 0\). We will use this simple example to test the RCIP algorithm for various values of \(n_{\text {sub}}\). Figure 6 shows the results. If we use the standard Nyström discretization without RCIP, we get quite large errors everywhere in the domain; the errors are not localized around the corner. For \(n_{\text {sub}}=30\) the RCIP algorithm allows us to achieve 11 digits accuracy everywhere in the domain, except for close to the corners. To gain additional accuracy near the corners, it is possible to recover the actual fine density and use it along with the special quadrature described in Sect. 4.4 [12, Section 10].
For the self-convergence study, we will use the same domain, but prescribe zero boundary conditions on the walls, and set \(\langle \nabla p\rangle = 1\). We compare the computed velocity with \(n_{\text {sub}}= 0,~10,~ 20\), and 30, to one with \(n_{\text {sub}}= 50\). As can be seen in Fig. 7, the velocity field using \(n_{\text {sub}}= 30\) matches the solution with \(n_{\text {sub}}= 50\) to 11 digits.
The number of refinements needed to achieve a desired accuracy depends heavily on the geometry. Reentrant corners in particular require more refinement. For example Fig. 8 shows an example where \(n_{\text {sub}}= 20\) achieves only a maximum of 6 digits of accuracy. Using \(n_{\text {sub}}= 60\) we are able to acheive 11 digits accuracy in the interior. At the finest \(n_{\text {sub}}\) we are placing quadrature points on panels of size \(10^{-19}\). Using a local coordinate system centered at zero is essential in this case.

6.1 Remarks on timings

Each subdivision in the RCIP algorithm involves inverting an \(\mathbf {R}\) matrix in (12). This matrix will be of the size \(8n_q\times 8n_q\); all our simulations use \(n_q = 16\), meaning \(\mathbf {R}\) will be \(128\times 128\). This is not a very cheap procedure, and for small problems this cost can indeed dominate the cost of solving the linear system to find \(\tilde{{\mathbf {q}}}\). Using Matlab 2017a on a desktop with 32 GB of RAM and an Intel i7 processor each subdivision step takes approximately 1.6 s (this is independent of the problem under consideration). For the problem in Figs. 6 and 7 with \(n_{\text {sub}}=10\), assembling the RCIP matrices (3 of them) takes around 48 s. By comparison solving the linear system of size \(1280\times 1280\) using GMRES takes around 0.7 s, and postprocessing the solution at 25,000 points (and applying special quadrature where needed) takes around 4 s.
The cost of a single matrix-vector product is slightly higher as well using RCIP. Without RCIP, for each GMRES iteration it is necessary to compute the product \(\mathbf {K}{\mathbf {q}}\), usually using some kind of fast summation method. As discussed in Sect. 4.3, when using RCIP, each matrix-vector product requires the additional computation of \(\hat{{\mathbf {R}}}\tilde{{\mathbf {q}}}\), as well as the product \(\mathbf {K}^*(\hat{{\mathbf {R}}}\tilde{{\mathbf {q}}})\). As mentioned, the first of those products can be done directly, since \(\hat{{\mathbf {R}}}\) is a block diagonal matrix, with one \(8n_q\times 8n_q\) block per corner. The second of these products is actually just another \(8n_q\times 8 n_q\) product per corner. This product is effectively zeroing out the entries in the matrix \(\mathbf {K}\) corresponding to entries where both the source and target points are close to corners. Therefore it should be done using the same fast method as the full matrix-vector product \(\mathbf {K}(\hat{{\mathbf {R}}}\tilde{{\mathbf {q}}})\). In the example corresponding to Figs. 6 and 7, one full matrix-vector product takes 0.035 s without RCIP and 0.038 s with RCIP, an increase of about 8%. This percentage increase will depend on the \(n_q\), the number of corners, as well as the relative size of \(\varGamma ^*\) to \(\varGamma \), but not on \(n_{\text {sub}}\).
It should be noted, that without RCIP the cost grows as \(\mathcal {O}(N\log N)\) with local refinement. Here N is the number of unknowns, and grows by \(4 n_q\) per corner for each subdivision. In the examples shown in Figs. 6 and 7 this would correspond to solving a linear system of size \(1280 + 4(16)(10)(3) = 3200\); for \(n_{\text {sub}}= 50\), the linear system would be of the size 10,880. In addition, the condition number of the refined matrix would grow with the number of quadrature points, and require more GMRES iterations to solve to a desired accuracy. For time dependent problems as in Sect. 7, the larger system would have to be solved at every time step. In this case RCIP has a clear advantage, since as long as the wall geometry remains fixed, the \({\mathbf {R}}\) matrices need only be assembled once and a smaller linear system can be solved at each time step.

7 Adding viscous drops

Earlier work [32] has looked at modelling the movement of drops inside confined periodic geometries. We now demonstrate the robustness and usefulness of RCIP by extending the method in [32] to model the movement of drops near sharp interfaces. A drop is a packet of fluid that is does not mix with the fluid surrounding it. Surface tension forces prevent the mixing of the drop with the bulk fluid. Both the fluid inside each drop, and the bulk fluid, satisfy the incompressible Stokes equations,
$$\begin{aligned} \begin{array}{ll} -\mu _0 \Delta {\mathbf {u}}({\mathbf {x}}) + \nabla p({\mathbf {x}}) = \mathbf {0},&{} \quad {\mathbf {x}}\in \varOmega _0,\\ -\mu _\ell \Delta {\mathbf {u}}({\mathbf {x}}) + \nabla p({\mathbf {x}}) = \mathbf {0},&{}\quad {\mathbf {x}}\in \varOmega _\ell ,~\ell =1,\ldots , N_d,\\ \nabla \cdot {\mathbf {u}}= 0,&{}\quad {\mathbf {x}}\in \bigcup \limits _{\ell =0}^{N_d}\varOmega _\ell , \end{array} \end{aligned}$$
where \(\mu _\ell \) denotes the viscosity inside the region bounded by \(\varGamma _\ell \). See Fig. 9 for a representative problem. As \(\lambda \) increases the drop behaves more like a rigid particle.
At the interfaces the velocity is continuous; however, in general the surface forces acting on the interface from the inside and the outside of the drop are not equal. We will denote the jump in the normal force across interface \(\ell \) as \(\delta {\mathbf {f}}_\ell ({\mathbf {x}})\). This jump is related to the curvature \(\kappa _\ell ({\mathbf {x}})\), and the surface tension \(\sigma _\ell ({\mathbf {x}})\) by Pozrikidis [29, Chapter 5],
$$\begin{aligned} \delta \mathbf {f}_\ell ({\mathbf {x}}) =: (-p_0 -p_\ell ){\mathbf {n}}_\ell + 2(\mu _0 \mathbf {e}_0 - \mu _k\mathbf {e}_\ell )\cdot {\mathbf {n}}_\ell = \sigma _\ell ({\mathbf {x}}) \kappa _\ell ({\mathbf {x}}) {\mathbf {n}}({\mathbf {x}}) - \nabla _s \sigma _\ell ({\mathbf {x}}), \end{aligned}$$
where \(\mathbf {e}_\ell \) denotes the rate of strain tensor in \(\varOmega _\ell \) and \(\nabla _s\) is the gradient along the interface.
To nondimensionalize this problem, we will define h to be the minimum height of the channel. We would like the maximum velocity of an empty channel to be 1. To do this, we will introduce a pressure scale \(h\langle \nabla p\rangle /8\), a length scale h, a velocity scale \(h^2\langle \nabla p\rangle /(8 \mu _0)\), and a surface tension scale \(\sigma _0\) to obtain the full nondimensional form of the problem,
$$\begin{aligned} \begin{array}{ll} -\Delta {\mathbf {u}}({\mathbf {x}}) + \nabla p({\mathbf {x}}) = \mathbf {0},&{}\quad {\mathbf {x}}\in \varOmega _0,\\ -\lambda _\ell \Delta {\mathbf {u}}({\mathbf {x}}) + \nabla p({\mathbf {x}}) = \mathbf {0},&{}\quad {\mathbf {x}}\in \varOmega _\ell ,~\ell =1,\ldots , N_d,\\ \nabla \cdot {\mathbf {u}}= 0,&{}\quad {\mathbf {x}}\in \bigcup \limits _{\ell =0}^{N_d}\varOmega _\ell ,\\ \delta {\mathbf {f}}_\ell = \frac{1}{\text {Lp}}(\sigma _\ell \kappa _\ell {\mathbf {n}}_\ell - \nabla _s\sigma _\ell ), &{}\quad {\mathbf {x}}\in \varGamma _\ell ,\\ {\mathbf {u}}({\mathbf {x}}) ={\mathbf {u}}({\mathbf {x}}+ L),&{}\\ \langle \nabla p\rangle = (8, 0),&{} \end{array} \end{aligned}$$
where the Laplace number \(\text {Lp}\) is the dimensionless quantity given by \(h^2\langle \nabla p\rangle /(8\sigma _0)\) [20]. The time scale is now \(h / U =8 \mu _0/(h \langle \nabla p\rangle )\). The Laplace number serves the same purpose as the Capillary number in other drop simulations [32], but for pressure driven flows it is more natural to nondimensionalize according to the pressure gradient as opposed to a maximum velocity. In [31, 32] chemical surface active agents change the surface tension of the drops; however, for the remainder of this paper we will assume a constant surface tension, i.e. \(\nabla _s \sigma = 0\). Allowing for non constant surface tension would not impact the RCIP algorithm in any way.
A BIE formulation [42] for the problem is given by
$$\begin{aligned} {\mathbf {u}}({\mathbf {x}}) = \sum \limits _{\ell = 1}^{N_d} \left( \mathbb {S}^P_{\varGamma _\ell } [\delta {\mathbf {f}}]({\mathbf {x}}) + (\lambda _\ell - 1)\mathbb {D}^P_{\varGamma _\ell }[{\mathbf {u}}]({\mathbf {x}})\right) + \mathbb {K}^P[{\mathbf {q}}]({\mathbf {x}}) + \langle {\mathbf {u}}\rangle , \end{aligned}$$
(17)
where \(\mathbb {S}^P_{\varGamma _\ell }\) and \(\mathbb {D}^P_{\varGamma _\ell }\) are the periodic single- and double-layer operators defined on \(\varGamma _\ell \).
Taking the limit as \({\mathbf {x}}\rightarrow {\mathbf {x}}_0\in \varGamma _0\),
$$\begin{aligned}&-{\mathbf {q}}({\mathbf {x}}_0) + \mathbb {K}^P[{\mathbf {q}}]({\mathbf {x}}_0) + \sum \limits _{\ell = 1}^{N_d} (\lambda _\ell - 1)\mathbb {D}^P_{\varGamma _\ell }[{\mathbf {u}}]({\mathbf {x}}_0) + \langle {\mathbf {u}}\rangle = \mathbf {g}({\mathbf {x}}_0)\\&\quad - \sum \limits _{\ell =1}^{N_d}\mathbb {S}^P_{\varGamma _\ell } [\delta {\mathbf {f}}]({\mathbf {x}}_0), \quad {\mathbf {x}}_0\in \varGamma _0, \end{aligned}$$
and taking the limit \({\mathbf {x}}\rightarrow {\mathbf {x}}_0 \in \varGamma _m\),
$$\begin{aligned}&{\mathbf {u}}({\mathbf {x}}_0) -2\sum \limits _{\ell = 1}^{N_d} \frac{\lambda _\ell - 1}{\lambda _m + 1} \mathbb {D}^P[{\mathbf {u}}]({\mathbf {x}}_0) - \frac{2}{\lambda _m + 1}\left( \mathbb {K}^P[{\mathbf {q}}]({\mathbf {x}}_0) + \langle {\mathbf {u}}\rangle \right) \\&\quad = \sum \limits _{\ell =1}^{N_d} \frac{2}{\lambda _m + 1}\mathbb {S}^P_{\varGamma _\ell }[\delta {\mathbf {f}}]({\mathbf {x}}_0) \quad {\mathbf {x}}_0\in \varGamma _m. \end{aligned}$$
As in Sect. 5 we close the system by relating the density function \({\mathbf {q}}\), still defined only on the solid walls \(\varGamma _0\), to the (nondimensionalized) average pressure gradient,
$$\begin{aligned} \eta \int _{\varGamma _0} {\mathbf {q}}~\text {d}\varGamma _0 = \frac{1}{L^2}\begin{pmatrix} 8 \\ 0\end{pmatrix}. \end{aligned}$$
By inspecting (17), we see that if \(\lambda _\ell = 1,~\ell = 1,\ldots ,N_d\), then the velocity on the drop interfaces only appears on one side of the equation. This means that after solving for \({\mathbf {q}}\) on the solid walls, \({\mathbf {u}}\) can be computed as a post-processing step. In general; hower, both \({\mathbf {u}}\) and \({\mathbf {q}}\) need to be solved for simultaneously. The drop boundaries are discretized in exactly the same way as the solid walls, and the same close evaluation scheme is used to compute both \(\mathbb {D}_{\varGamma _\ell }^P[{\mathbf {u}}]\) and \(\mathbb {S}_{\varGamma _\ell }^p[\delta {\mathbf {f}}]\) for drops that are near each other, or near a solid wall. After computing \({\mathbf {u}}({\mathbf {x}})\) on the drop interfaces, the drops move and deform according to the velocity,
$$\begin{aligned} \frac{\text {d}{\mathbf {x}}}{\text {d}t} = {\mathbf {u}}({\mathbf {x}}), \quad {\mathbf {x}}\in \bigcup \limits _{\ell = 1}^{N_d}\varGamma _\ell . \end{aligned}$$
To evaluate this system of ODEs we will use the fourth order adaptive time stepper described in [16]. Further details on time stepping, including a way to maintain consistent arclength spacing as the drop perimeter changes, can be found in [31, 32].
It is important to note that since the solid walls are not moving, the RCIP matrices \({\mathbf {R}}_{j}\), \(j=1,\ldots , n_c\) need only be computed at the start of the simulation. This means that after this precomputation the actual time needed each time step to solve the linear system is independent of \(n_{\text {sub}}\).

7.1 Numerical results involving viscous drops

To illustrate the performace of our method, we will consider two different examples. First, Fig. 10 shows snapshots of a simulation of a single drop passing through a narrow piecewise continuous constriction. We begin by creating a high resolution reference solution with RCIP for \(\lambda =1\) and \(\lambda =5\). The reference solution will be discretized using \(n_{\text {pan}}= 140\) on both the solid walls and the drop, and \(n_{\text {sub}}=20\). The time stepping tolerance for the high resolution simulation is \(10^{-10}\).
To compute an error, we will look at the \(\ell _\infty \) difference of a numerical solution with the computed reference solution. As described in [32], when updating the positions of the drops it is advantageous to work on a uniform grid with parameter spacing \(\Delta s\), instead of the panel Gauss–Legendre points. Using a uniform grid also allows us to easily upsample the non-reference solutions using an FFT to obtain a solution at the same discretization points as the reference solution.
As can be seen in Fig. 11, without RCIP, as we refine the number of points on both the drop and the wall, the numerical solutions for both \(\lambda =1\) and \(\lambda =5\) converge very slowly towards the high resolution reference solution. When we use RCIP with \(n_{\text {sub}}=20\), the numerical solutions are much more accurate; around the level of the time stepping tolerance for the low resolution simulations of \(10^{-8}\).
As a second example, we will investigate the movement of multiple drops of different sizes confined in a periodic channel containing several corners. A snapshot of such a simulation at \(t=6\) (after all the drops have passed at least one periodic length) is shown in Fig. 12. As the snapshot makes clear, there is a clear, visible difference in the modelled drops depending on whether or not we use RCIP. In particular, the difference between no RCIP and \(n_{\text {sub}}= 10\) is quite large, whereas the difference between the \(n_{\text {sub}}=20\) and \(n_{\text {sub}}=30\) is hardly noticable.
Further proof of the necessity of the proper handling of corners is shown in Fig. 13. Since the fluid inside the drops is incompressible, the area of each drop should be conserved. Note that this is not enforced explicitly, nor is area conservation used in the criteria for the temporal adaptivity. Without RCIP, the area after each drop has passed one periodic channel length is conserved only up to around \(10^{-4}\). When applying RCIP with \(n_{\text {sub}}=10\), it is below \(10^{-7}\), and when applying \(n_{\text {sub}}=20\), the area error is at or below the time stepping tolerance.

8 Conclusion

Domains with sharp corners pose challenges for boundary integral methods. The layer density defined on the boundary becomes weakly singular at the corners, and therefore standard quadrature rules cannot be accurately applied. This destroys the accuracy of the post-processed solution everywhere in the domain. We have demonstrated how a technique known as recursively compressed inverse preconditioning (RCIP) can be used to accurately solve the Stokes equations on two-dimensional domains with corners. This method requires a small amount of precomputation, however, it does not add any additional unknowns to the problem, nor does it increase the condition number of the linear system. Numerical experiments have demonstrated its robustness and usefulness for postprocessing the velocity anywhere in the domain. Additionally we have shown that it can be added to an existing drop model [32] to accurately model the movement of drops near corners.
Future work could include extending this model to three dimensions. A boundary integral method for three-dimensional drops in free space has been developed [37, 38]. In three dimensions Lipschitz domains admit both corners and edges, so the RCIP algorithm described in Sect. 4.2 must be further developed. In [15] such an approach is used to compute the capacitance of a cube.

Acknowledgements

Open access funding provided by Royal Institute of Technology. The authors would like to acknowledge support the Knut and Alice Wallenberg Foundation (Award Number KAW 2017.0410) as well as by the Göran Gustafsson Foundation for Research in Nature and Medicine
Open AccessThis article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article’s Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article’s Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Literatur
1.
Zurück zum Zitat Achdou, Y., Pironneau, O., Valentin, F.: Effective boundary conditions for laminar flows over periodic rough boundaries. J. Comput. Phys. 147(1), 187–218 (1998)MathSciNetCrossRef Achdou, Y., Pironneau, O., Valentin, F.: Effective boundary conditions for laminar flows over periodic rough boundaries. J. Comput. Phys. 147(1), 187–218 (1998)MathSciNetCrossRef
2.
Zurück zum Zitat Atkinson, K.E.: The Numerical Solution of Intregal Equations of the Second Kind. Cambridge University Press, Cambridge (1997)CrossRef Atkinson, K.E.: The Numerical Solution of Intregal Equations of the Second Kind. Cambridge University Press, Cambridge (1997)CrossRef
3.
Zurück zum Zitat Bremer, J.: On the Nyström discretization of integral equations on planar curves with corners. Appl. Comput. Harmon. Anal. 32(1), 45–64 (2012)MathSciNetCrossRef Bremer, J.: On the Nyström discretization of integral equations on planar curves with corners. Appl. Comput. Harmon. Anal. 32(1), 45–64 (2012)MathSciNetCrossRef
4.
Zurück zum Zitat Bystricky, L., Shanbhag, S., Quaife, B.: Stable and contact-free time stepping for dense rigid particle suspensions. Int. J. Numer. Methods in Fluids 92(2), 94–113 (2019)MathSciNetCrossRef Bystricky, L., Shanbhag, S., Quaife, B.: Stable and contact-free time stepping for dense rigid particle suspensions. Int. J. Numer. Methods in Fluids 92(2), 94–113 (2019)MathSciNetCrossRef
5.
Zurück zum Zitat Dalibard, A.-L., Gérard-Varet, D.: Effective boundary condition at a rough surface starting from a slip condition. J. Differ. Equ. 251(12), 3450–3487 (2011)MathSciNetCrossRef Dalibard, A.-L., Gérard-Varet, D.: Effective boundary condition at a rough surface starting from a slip condition. J. Differ. Equ. 251(12), 3450–3487 (2011)MathSciNetCrossRef
6.
Zurück zum Zitat Gohberg, I., Krupnik, N.: One Dimensional Linear Singular Integral Equations. I. Introduction. Birkhäuser Verlag, Basel (1992)CrossRef Gohberg, I., Krupnik, N.: One Dimensional Linear Singular Integral Equations. I. Introduction. Birkhäuser Verlag, Basel (1992)CrossRef
7.
Zurück zum Zitat Gopal, A., Trefethen, L.N.: Solving Laplace problems with corner singularities via rational functions. SIAM J. Numer. Anal. 57(5), 2074–2094 (2019)MathSciNetCrossRef Gopal, A., Trefethen, L.N.: Solving Laplace problems with corner singularities via rational functions. SIAM J. Numer. Anal. 57(5), 2074–2094 (2019)MathSciNetCrossRef
8.
Zurück zum Zitat Greengard, L., Rokhlin, V.: A fast algorithm for particle simulations. J. Comput. Phys. 73(2), 325–348 (1987)MathSciNetCrossRef Greengard, L., Rokhlin, V.: A fast algorithm for particle simulations. J. Comput. Phys. 73(2), 325–348 (1987)MathSciNetCrossRef
9.
Zurück zum Zitat Leslie Greengard and June Yub Lee: Accelerating the nonuniform fast Fourier transform. SIAM Rev. 46(3), 443–454 (2004)MathSciNetCrossRef Leslie Greengard and June Yub Lee: Accelerating the nonuniform fast Fourier transform. SIAM Rev. 46(3), 443–454 (2004)MathSciNetCrossRef
10.
Zurück zum Zitat Hebeker, F.-K.: Efficient boundary element methods for three-dimensional exterior viscous flow. Numer. Methods for PDEs 2, 273–297 (1986)MathSciNetCrossRef Hebeker, F.-K.: Efficient boundary element methods for three-dimensional exterior viscous flow. Numer. Methods for PDEs 2, 273–297 (1986)MathSciNetCrossRef
11.
Zurück zum Zitat Helsing, J., Jiang, S.: On integral equation methods for the first Dirichlet problem of the biharmonic and modified biharmonic equations in nonsmooth domains. SIAM J. Sci. Comput. 40(4), A2609–A2630 (2018)MathSciNetCrossRef Helsing, J., Jiang, S.: On integral equation methods for the first Dirichlet problem of the biharmonic and modified biharmonic equations in nonsmooth domains. SIAM J. Sci. Comput. 40(4), A2609–A2630 (2018)MathSciNetCrossRef
12.
Zurück zum Zitat Helsing, J.: Solving integral equations on piecewise smooth boundaries using the RCIP method: a tutorial. Abstr. Appl. Anal. 2013 (2013). Article ID 938167 Helsing, J.: Solving integral equations on piecewise smooth boundaries using the RCIP method: a tutorial. Abstr. Appl. Anal. 2013 (2013). Article ID 938167
13.
Zurück zum Zitat Helsing, J., Ojala, R.: Corner singularities for elliptic problems: integral equations, graded meshes, quadrature, and compressed inverse preconditioning. J. Comput. Phys. 227(20), 8820–8840 (2008)MathSciNetCrossRef Helsing, J., Ojala, R.: Corner singularities for elliptic problems: integral equations, graded meshes, quadrature, and compressed inverse preconditioning. J. Comput. Phys. 227(20), 8820–8840 (2008)MathSciNetCrossRef
14.
Zurück zum Zitat Helsing, J., Ojala, R.: On the evaluation of layer potentials close to their sources. J. Comput. Phys. 227(5), 2899–2921 (2008)MathSciNetCrossRef Helsing, J., Ojala, R.: On the evaluation of layer potentials close to their sources. J. Comput. Phys. 227(5), 2899–2921 (2008)MathSciNetCrossRef
15.
Zurück zum Zitat Helsing, J., Perfekt, K.-M.: On the polarizability and capacitance of the cube. Appl. Comput. Harmon. Anal. 34(3), 445–468 (2013)MathSciNetCrossRef Helsing, J., Perfekt, K.-M.: On the polarizability and capacitance of the cube. Appl. Comput. Harmon. Anal. 34(3), 445–468 (2013)MathSciNetCrossRef
16.
Zurück zum Zitat Kennedy, C.A., Carpenter, M.H.: Additive Runge–Kutta schemes for convection–diffusion–reaction equations. Appl. Numer. Math. 44(1), 139–181 (2003)MathSciNetCrossRef Kennedy, C.A., Carpenter, M.H.: Additive Runge–Kutta schemes for convection–diffusion–reaction equations. Appl. Numer. Math. 44(1), 139–181 (2003)MathSciNetCrossRef
17.
Zurück zum Zitat Kim, S., Karrila, S.J.: Microhydrodynamics: Principles and Selected Applications. Dover Publications Inc, Mineola, NY (2005) Kim, S., Karrila, S.J.: Microhydrodynamics: Principles and Selected Applications. Dover Publications Inc, Mineola, NY (2005)
18.
Zurück zum Zitat af Klinteberg, L., Shamshirgar, D.S., Tornberg, A.-K.: Fast Ewald summation for free-space Stokes potentials. Res. Math. Sci. 4(1) (2017) af Klinteberg, L., Shamshirgar, D.S., Tornberg, A.-K.: Fast Ewald summation for free-space Stokes potentials. Res. Math. Sci. 4(1) (2017)
19.
Zurück zum Zitat af Klinteberg, L., Tornberg, A.-K.: A fast integral equation method for solid particles in viscous flow using quadrature by expansion. J. Comput. Phys. 326, 420–445 (2016)MathSciNetCrossRef af Klinteberg, L., Tornberg, A.-K.: A fast integral equation method for solid particles in viscous flow using quadrature by expansion. J. Comput. Phys. 326, 420–445 (2016)MathSciNetCrossRef
20.
Zurück zum Zitat Kuneš, J.: Dimensionless Physical Constants in Science and Engineering. Elsevier, London (2012) Kuneš, J.: Dimensionless Physical Constants in Science and Engineering. Elsevier, London (2012)
21.
Zurück zum Zitat Ladyzhenskaya, O.A.: The Mathematical Theory of Viscous Incompressible Flow, Second English edn. Gordon and Breach Science Publishers, London (1987) Ladyzhenskaya, O.A.: The Mathematical Theory of Viscous Incompressible Flow, Second English edn. Gordon and Breach Science Publishers, London (1987)
22.
Zurück zum Zitat Lindbo, D., Tornberg, A.-K.: Spectrally accurate fast summation for periodic Stokes potentials. J. Comput. Phys. 229(23), 8994–9010 (2010)MathSciNetCrossRef Lindbo, D., Tornberg, A.-K.: Spectrally accurate fast summation for periodic Stokes potentials. J. Comput. Phys. 229(23), 8994–9010 (2010)MathSciNetCrossRef
23.
Zurück zum Zitat Lindbo, D., Tornberg, A.-K.: Spectral accuracy in fast Ewald-based methods for particle simulations. J. Comput. Phys. 230(24), 8744–8761 (2011)MathSciNetCrossRef Lindbo, D., Tornberg, A.-K.: Spectral accuracy in fast Ewald-based methods for particle simulations. J. Comput. Phys. 230(24), 8744–8761 (2011)MathSciNetCrossRef
24.
Zurück zum Zitat Marple, G.R., Barnett, A., Gillman, A., Veerapaneni, S.: A fast algorithm for simulating multiphase flows through periodic geometries of arbitrary shape. SIAM J. Sci. Comput. 38(5), 740–772 (2015)MathSciNetCrossRef Marple, G.R., Barnett, A., Gillman, A., Veerapaneni, S.: A fast algorithm for simulating multiphase flows through periodic geometries of arbitrary shape. SIAM J. Sci. Comput. 38(5), 740–772 (2015)MathSciNetCrossRef
25.
Zurück zum Zitat Ojala, R., Tornberg, A.K.: An accurate integral equation method for simulating multi-phase Stokes flow. J. Comput. Phys. 298, 145–160 (2015)MathSciNetCrossRef Ojala, R., Tornberg, A.K.: An accurate integral equation method for simulating multi-phase Stokes flow. J. Comput. Phys. 298, 145–160 (2015)MathSciNetCrossRef
26.
Zurück zum Zitat Ojala, R.: A robust and accurate solver of Laplace’s equation with general boundary conditions on general domains in the plane. J. Comput. Math. 30(4), 433–448 (2012)MathSciNetCrossRef Ojala, R.: A robust and accurate solver of Laplace’s equation with general boundary conditions on general domains in the plane. J. Comput. Math. 30(4), 433–448 (2012)MathSciNetCrossRef
27.
Zurück zum Zitat Power, H.: The completed double layer boundary integral formulation for two-dimensional Stokes flow. IMA J. Appl. Math. 51(2), 123–145 (1993)MathSciNetCrossRef Power, H.: The completed double layer boundary integral formulation for two-dimensional Stokes flow. IMA J. Appl. Math. 51(2), 123–145 (1993)MathSciNetCrossRef
28.
Zurück zum Zitat Power, H., Miranda, G.: Second kind integral equation formulation of Stokes’ flows past a particle of arbitrary shape. SIAM J. Appl. Math. 47(4), 689–698 (1987)MathSciNetCrossRef Power, H., Miranda, G.: Second kind integral equation formulation of Stokes’ flows past a particle of arbitrary shape. SIAM J. Appl. Math. 47(4), 689–698 (1987)MathSciNetCrossRef
29.
Zurück zum Zitat Pozrikidis, C.: Boundary Integral and Singularity Methods for Linearized Viscous Flow. Cambridge University Press, Cambridge (1992)CrossRef Pozrikidis, C.: Boundary Integral and Singularity Methods for Linearized Viscous Flow. Cambridge University Press, Cambridge (1992)CrossRef
30.
Zurück zum Zitat Pozrikidis, C.: Computation of periodic Green’s functions of Stokes flow. J. Eng. Math. 30(1), 79–96 (1996)MathSciNetCrossRef Pozrikidis, C.: Computation of periodic Green’s functions of Stokes flow. J. Eng. Math. 30(1), 79–96 (1996)MathSciNetCrossRef
31.
Zurück zum Zitat Pålsson, S., Siegel, M., Tornberg, A.-K.: Simulation and validation of surfactant-laden drops in two-dimensional Stokes flow. J. Comput. Phys. 386, 218–247 (2019)MathSciNetCrossRef Pålsson, S., Siegel, M., Tornberg, A.-K.: Simulation and validation of surfactant-laden drops in two-dimensional Stokes flow. J. Comput. Phys. 386, 218–247 (2019)MathSciNetCrossRef
32.
Zurück zum Zitat Pålsson, S., Tornberg, A.-K.: An integral equation method for closely interacting surfactant-covered droplets in wall-confined Stokes flow. Int. J. Numer. Methods Fluids (2020) (to appear) Pålsson, S., Tornberg, A.-K.: An integral equation method for closely interacting surfactant-covered droplets in wall-confined Stokes flow. Int. J. Numer. Methods Fluids (2020) (to appear)
33.
Zurück zum Zitat Quaife, B., Biros, G.: High-volume fraction simulations of two-dimensional vesicle suspensions. J. Comput. Phys. 274, 245–267 (2014)MathSciNetCrossRef Quaife, B., Biros, G.: High-volume fraction simulations of two-dimensional vesicle suspensions. J. Comput. Phys. 274, 245–267 (2014)MathSciNetCrossRef
34.
Zurück zum Zitat Rachh, M., Serkh, K.: On the solution of Stokes equation on regions with corners. arXiv e-prints (2017) Rachh, M., Serkh, K.: On the solution of Stokes equation on regions with corners. arXiv e-prints (2017)
35.
Zurück zum Zitat Saad, Y., Schultz, M.H.: GMRES: a generalized minimal residual algorithm for solving nonsymmetric linear systems. SIAM J. Sci. Stat. Comput. 7(3), 856–869 (1986)MathSciNetCrossRef Saad, Y., Schultz, M.H.: GMRES: a generalized minimal residual algorithm for solving nonsymmetric linear systems. SIAM J. Sci. Stat. Comput. 7(3), 856–869 (1986)MathSciNetCrossRef
36.
Zurück zum Zitat Serkh, K., Rokhlin, V.: On the solution of elliptic partial differential equations on regions with corners. J. Comput. Phys. 305, 150–171 (2016)MathSciNetCrossRef Serkh, K., Rokhlin, V.: On the solution of elliptic partial differential equations on regions with corners. J. Comput. Phys. 305, 150–171 (2016)MathSciNetCrossRef
37.
Zurück zum Zitat Sorgentone, C., Tornberg, A.-K.: A highly accurate boundary integral equation method for surfactant-laden drops in 3D. J. Comput. Phys. 360, 167–191 (2018)MathSciNetCrossRef Sorgentone, C., Tornberg, A.-K.: A highly accurate boundary integral equation method for surfactant-laden drops in 3D. J. Comput. Phys. 360, 167–191 (2018)MathSciNetCrossRef
38.
Zurück zum Zitat Sorgentone, C., Tornberg, A.-K., Vlahovska, P.M.: A 3D boundary integral method for the electrohydrodynamics of surfactant-covered drops. J. Comput. Phys. 389, 111–127 (2019)MathSciNetCrossRef Sorgentone, C., Tornberg, A.-K., Vlahovska, P.M.: A 3D boundary integral method for the electrohydrodynamics of surfactant-covered drops. J. Comput. Phys. 389, 111–127 (2019)MathSciNetCrossRef
39.
Zurück zum Zitat Verchota, G.: Layer potentials and regularity for the Dirichlet problem for Laplace’s equation in Lipschitz domains. J. Funct. Anal. 59, 572–611 (1984)MathSciNetCrossRef Verchota, G.: Layer potentials and regularity for the Dirichlet problem for Laplace’s equation in Lipschitz domains. J. Funct. Anal. 59, 572–611 (1984)MathSciNetCrossRef
40.
Zurück zum Zitat Wu, B., Zhu, H., Barnett, A., Veerapaneni, S.: Solution of Stokes flow in complex nonsmooth 2D geometries via a linear-scaling high-order adaptive integral equation scheme. J. Comput. Phys. 410 (2020) (to appear) Wu, B., Zhu, H., Barnett, A., Veerapaneni, S.: Solution of Stokes flow in complex nonsmooth 2D geometries via a linear-scaling high-order adaptive integral equation scheme. J. Comput. Phys. 410 (2020) (to appear)
41.
Zurück zum Zitat Zhao, H., Isfahani, A.H.G., Olson, L.N., Freund, J.B.: A spectral boundary integral method for flowing blood cells. J. Comput. Phys. 229(10), 3726–3744 (2010)MathSciNetCrossRef Zhao, H., Isfahani, A.H.G., Olson, L.N., Freund, J.B.: A spectral boundary integral method for flowing blood cells. J. Comput. Phys. 229(10), 3726–3744 (2010)MathSciNetCrossRef
42.
Zurück zum Zitat Zinchenko, A.Z., Davis, R.H.: A boundary-integral study of a drop squeezing through interparticle constrictions. J. Fluid Mech. 564, 227–266 (2006)MathSciNetCrossRef Zinchenko, A.Z., Davis, R.H.: A boundary-integral study of a drop squeezing through interparticle constrictions. J. Fluid Mech. 564, 227–266 (2006)MathSciNetCrossRef
Metadaten
Titel
An accurate integral equation method for Stokes flow with piecewise smooth boundaries
verfasst von
Lukas Bystricky
Sara Pålsson
Anna-Karin Tornberg
Publikationsdatum
07.08.2020
Verlag
Springer Netherlands
Erschienen in
BIT Numerical Mathematics / Ausgabe 1/2021
Print ISSN: 0006-3835
Elektronische ISSN: 1572-9125
DOI
https://doi.org/10.1007/s10543-020-00816-1

Weitere Artikel der Ausgabe 1/2021

BIT Numerical Mathematics 1/2021 Zur Ausgabe