1 Overview of the Immersed Boundary Method

Most conventional numerical methods to simulate complex fluid–structure interaction problems utilize body-conforming discretizations, where the fluid–solid interface conditions are imposed as boundary conditions. In its most general formulation, the fluid–structure interface can both be moving and deforming as a result of the two-way coupling between fluid and structure. Common body-fitted approaches include arbitrary Lagrangian–Eulerian formulations (Hirt et al. 1974; Ahn and Kallinderis 2006) or space–time finite element methods (Tezduyar et al. 1992, 2006).

The generation of body-fitted meshes for complex, possibly moving and deforming geometries, is computationally expensive and requires sophisticated procedures to avoid severe mesh distortion and preserve accuracy (Thompson et al. 1998; Hermansson and Hansbo 2003; Tezduyar et al. 2006; Nakata and Liu 2012). An alternative is the use of non-conforming meshes, the most widely used example being the immersed boundary method (IB). The IB method was first proposed in Peskin (1972) to simulate blood flow inside a heart with flexible valves. In the IB method, the flow field is described on a non-conforming Eulerian grid. The immersed surface is represented in a Lagrangian framework, and the surface traction is determined by imposing the no-slip boundary condition on the Eulerian velocity field interpolated to the surface. In the continuous setting, the surface traction is a singular function (defined only on the surface) and is discretized by a smeared, discrete delta function that regularizes the forcing effect over the neighboring Eulerian grid cells.

In the original IB method (Peskin 1972), the heart valves were modeled as flexible membranes, and Hooke’s law was used as a constitutive relation to relate the forcing function to the motion of the Lagrangian points. Later, this scheme was extended to rigid bodies by taking large values for the spring constants (Beyer and LeVeque 1992; Lai and Peskin 2000). In addition, the concept of feedback control to compute the force on the rigid immersed surface was introduced by Goldstein et al. (1993), where the difference between the velocity solution and the boundary velocity is used in a proportional-integral controller. Note that for techniques using constitutive relations to model the flow over rigid bodies, the choice of gain (stiffness) is a tuning parameter whose value must be heuristically chosen to simultaneously avoid a restrictive time step size (large stiffness) and slip error (small stiffness).

Constitutive relations are eliminated in direct forcing methods and its variants (Mohd-Yusof 1997; Fadlun et al. 2000), where the momentum forcing is obtained by penalization of the slip at the surface. However, the no-slip condition is only enforced on an intermediate velocity field and hence requires iterations to approximate the no-slip condition on the final velocity fields. While the slip has been reported to be small (Fadlun et al. 2000), it cannot be estimated in a systematic fashion.

An alternative approach is to consider the boundary force as a Lagrange multiplier that is determined to enforce the no-slip condition (Glowinski et al. 1998; Taira and Colonius 2007; Colonius and Taira 2008; Kallemov et al. 2016). In this formulation, the discretized, incompressible Navier–Stokes equations (NSE) can be formulated in an analogous manner to the classical fractional step method by introducing appropriate regularization and interpolation operators. In addition, a modified Poisson equation, where the force and the pressure are lumped together, can be solved to determine the pressure and force unknowns. We refer to these methods as immersed boundary projection methods (IBPM). The advantage of IBPM is that continuity and no-slip conditions can be satisfied implicitly and with arbitrary accuracy at each time step. The Courant number is further only limited by the choice of the time-marching algorithm. With typical splitting methods (fractional step methods), one can achieve second-order accuracy uniformly in time and the matrices arising from the implicit treatment of the viscous terms as well as the modified Poisson equation can be made symmetric and positive definite. The resulting linear system can be solved with an efficient conjugate-gradient solver.

While the standard implementation with discrete delta functions is only first-order accurate in space, there have been efforts to improve the accuracy of IB methods in order to efficiently tackle higher Reynolds number flows. These include so-called sharp-interface and cut-cell approaches (Seo and Mittal 2011). In particular, standard IBs such as ghost-cell methods do not in general conserve mass or momentum at the interface, which manifests in spurious pressure oscillations (Mittal and Iaccarino 2005) and becomes particularly problematic for compressible flows or when coupled with large-eddy simulations and alike. A remedy was found in cut-cell methods, which strictly enforce conservation by reshaping finite volume boundary cells to locally conform with the geometry. A drawback of the cut-cell approach is that the fluid volume fractions of cut cells can become small, necessitating stabilization of the underlying time-stepping scheme using cell-merging (Ye et al. 1999), cell-linking (Kirkpatrick et al. 2003) or flux redistribution techniques (Hu et al. 2006; Colella et al. 2006). Additionally, cut-cell methods inherit many of the complications of body-fitted meshes and must be adapted dynamically for fluid–structure interaction problems.

In discussing order of accuracy, we must tackle a misunderstanding that has permeated at least through part of the IB literature. Even for rigid bodies, the velocity gradients are not continuous at an immersed surface, and the discretization must account for the derivative singularity to achieve high-order accuracy. If the singular traction is regularized without respect to the discretization (for example by using a discrete delta function), the regularized solution will converge to the continuous one at first order irrespective of the order of accuracy of the schemes used to treat the derivative operators. The regularization error may in principle be made small independently of the discretization error, but then the region over which the surface is smeared must be made arbitrarily thin compared to the grid spacing. If the first-order regularization error does not satisfy this restriction, then these “high-order” methods simply converge to the incorrect, smeared solution faster. An interesting approach toward higher-order IB methods is presented in Stein et al. (2017).

In this review, we take the alternative approach of accepting the first-order error near the immersed surface, as this allows mimetic discretizations that achieve other desirable properties, such as stability, discrete conservation, and computational efficiency. It may be possible to achieve second-order accuracy while maintaining these other characteristics in the future.

In what follows, we will introduce the immersed boundary projection method as proposed in Taira and Colonius (2007), Colonius and Taira (2008). We will also present a strongly coupled fluid–structure interaction algorithm as in Goza and Colonius (2017), which is then applied to simulate the flow past an inverted flexible flag. Subsequently, an immersed boundary method based on Lattice Green’s functions is introduced, and examples ranging from inclined rotating disks to turbulent flow past a sphere are shown. Finally, some perspectives to further increase the Reynolds number and inclusion of explicit turbulence models within the filtered NSE are provided.

2 Immersed Boundary Projection Method

The IB formulation for the incompressible Navier–Stokes equations with an additional singular boundary force \(\varvec{f}_{\Gamma }\) in the momentum equation reads as :

$$\begin{aligned}&\frac{\partial \varvec{u} }{\partial t} + \varvec{u} \cdot \nabla \varvec{u} = - \nabla p + \frac{1}{\mathrm{Re}} \nabla ^2 \varvec{u} + \int \limits _{\Gamma (t)} \varvec{f}_{\Gamma }(\varvec{X} (\varvec{\xi },t), t) \delta (\varvec{X}(\varvec{\xi },t)-\varvec{x}) \mathrm d \varvec{\xi }, \end{aligned}$$
(1.1a)
$$\begin{aligned}&\quad \nabla \cdot \varvec{u} =0, \end{aligned}$$
(1.1b)
$$\begin{aligned}&\quad \int \limits _{\Omega } \varvec{u}(\varvec{x}) \delta (\varvec{x}-\varvec{X}(\varvec{\xi },t)){\mathrm{d}} \varvec{x} = u_{\Gamma }( \varvec{\xi },t) =\frac{\partial \varvec{X}(\varvec{\xi },t)}{\partial t}, \end{aligned}$$
(1.1c)

where \(\varvec{u} = \varvec{u}( \varvec{x},t)\), \(p(\varvec{x},t)\), and \(\mathrm Re\) denote the fluid velocity, pressure, and the Reynolds number, respectively. We assume that the equations have already been made non-dimensional with respect to characteristic length and velocity scales, and the (constant) fluid density.

The Dirac delta function is indicated by \(\delta \) and \(\Omega \) is the Eulerian domain. The immersed body surface \( \Gamma \) is described in Lagrangian coordinates \(\varvec{X}=\varvec{X}(\varvec{\xi }, t)\), where \(\varvec{\xi }\) is the surface parametrization, and \(u_\Gamma (\varvec{\xi },t)=\frac{\partial \varvec{X}(\varvec{\xi },t)}{\partial t}\) is the boundary velocity. The body force \(\varvec{f}_\Gamma \) is chosen such that the no-slip condition on the immersed surface, as prescribed by Eq. (1.1c), is satisfied. This step is agnostic to any model for the motion of the surface based on the fluid forces acting on it, which in general determines the position of the surface, which can be moving with respect to the underling Eulerian domain.

The convolution with the Dirac delta function Eq. (1.1a) and Eq. (1.1c) couples the immersed surface with the Eulerian grid \(\Omega \). The velocity field \(\varvec{u}\) as well as the pressure are defined for all \(\varvec{x} \in \Omega \) and satisfy the far field boundary conditions \(\varvec{u}(\varvec{x}, t) \rightarrow \varvec{u}_\infty (t) \) as \(| \varvec{x} | \rightarrow \infty \).

An issue with this formulation based on surfaces is that it is assumed that fluid resides on either side of the immersed surface. When this is not the case, i.e., the immersed surface comprises a substantial closed volume, there are wasted points in the “ghost fluid” inside the body. Moreover, it is important to remember that the fluid inside the body can exert a force on the body when the surface is accelerated. For example, the added mass on a fluid-filled hollow sphere is different from that of a solid sphere. To the extent that the fluid inside the surface is moving as a rigid body, the additional force can readily be tabulated and used to correct the IB results to non-hollow bodies. For the more general case involving deformation of the IB, this formulation is only directly applicable to thin structures.

2.1 Discretization

The spatial discretization may be obtained via a second-order mimetic finite volume method (Nicolaides and Wu 1997; Nicolaides 1992; Perot 2000; Zhang et al. 2002) on a staggered mesh \(\mathcal {Q}:=\{ \mathcal {V},\mathcal {E}, \mathcal {F}, \mathcal {C} \}\), which consists of vertices \(\mathcal {V}\), edges \(\mathcal {E}\), faces \(\mathcal {F}\), and cells \(\mathcal {C}\) (see Fig. 1.1). Scalar quantities reside at cell centers and vertices, while faces and edges contain vector flow quantities. Grid functions with values on \(\mathcal {Q}\) are denoted by \(\mathbb {R}^\mathcal {Q}\) and functions with vector values at the Lagrangian grid points are denoted by \(\mathbb {R}^\Gamma \). The semi-discrete form of Eq. (1.1) reads as

$$\begin{aligned}&M \frac{\mathrm{{d}} u}{\mathrm{{d}} t} + N(u,t) = -Gp + \frac{1}{\mathrm{Re}} L_{\mathcal {F}} u +R(t) f&\end{aligned}$$
(1.2a)
$$\begin{aligned}&\quad \bar{D} u =0 \end{aligned}$$
(1.2b)
$$\begin{aligned}&\quad R(t) u =u_\Gamma , \end{aligned}$$
(1.2c)

where \(u\in \mathbb {R}^\mathcal {F}\) and \(p \in \mathbb {R}^C\) are the discrete velocity and pressure variables at time \(t>0\). The mass matrix is denoted by M. The discrete gradient, divergence, and Laplace operators are denoted by G, D, and L and, if ambiguous, a subscript is used to identify storage location. The set of discrete vector operators used in the following is given by:

$$\begin{aligned}&\text {Gradient} \qquad \qquad G: \mathbb {R}^\mathcal {C} \rightarrow \mathbb {R}^\mathcal {F}, \bar{G}: \mathbb {R}^\mathcal {C} \rightarrow \mathbb {R}^\mathcal {F}, \end{aligned}$$
(1.3)
$$\begin{aligned}&\text {Curl} \qquad \qquad \qquad C: \mathbb {R}^\mathcal {F} \rightarrow \mathbb {R}^\mathcal {E}, \bar{C}: \mathbb {R}^\mathcal {E} \rightarrow \mathbb {R}^\mathcal {F}. \end{aligned}$$
(1.4)
$$\begin{aligned}&\text {Divergence} \qquad D: \mathbb {R}^\mathcal {E} \rightarrow \mathbb {R}^\mathcal {V}, \bar{D}: \mathbb {R}^\mathcal {F} \rightarrow \mathbb {R}^\mathcal {C}, \end{aligned}$$
(1.5)
$$\begin{aligned}&\text {Laplace} \qquad \qquad L: \mathbb {R}^\mathcal {Q} \rightarrow \mathbb {R}^\mathcal {Q}. \end{aligned}$$
(1.6)

The convection term \(\varvec{u} \cdot \nabla \varvec{u}\) is approximated by the nonlinear operator N(ut). Different choices for this discretization lead to different (conservation) properties (Perot 2000). The discrete surface functions f(it) and \(u_\Gamma (i,t)\) denote the force and the velocity of the ith Lagrangian marker at \(\varvec{X}(\varvec{\xi _i}, \varvec{t})\) where \(i \in [1, N_L]\). The interpolation and regularization operators E(t) and R(t) are time-dependent and constructed by regularizing the \(\delta \)-function convolutions of Eq. (1.1a) and Eq. (1.1c), i.e., \(R(\cdot )\) and \(E(\cdot ) \) are discretizations of \(\int _\Gamma (\cdot ) \delta _h( X(\varvec{\xi },t) - \varvec{x} ) {\mathrm{d}} \varvec{\xi }\) and \(\int _\Omega (\cdot ) \delta _h( X(\varvec{\xi },t) - \varvec{x} ) {\mathrm{d}} \varvec{x}\), respectively (see also Sect. 1.2.3). The interpolation and regularization operators are adjoints under the standard inner product such that \(E=(\Delta x)^3 R^\dagger \).

Fig. 1.1
figure 1

Reprinted from Liska and Colonius (2016) with permission

Staggered cell object as used in the IBLGF method.

The scheme is second-order accurate and by using a staggered Cartesian grid conserves momentum and either kinetic energy or circulation, depending on the discretization for N(ut), in the limit of vanishing viscosity and time-stepping errors (Lilly 1965; Morinishi et al. 1998; Perot 2000). Note that the operators G and D can be formulated such that \(G=-D^\dagger \). Explicit expression for all operators can be found in Liska and Colonius (2017), Colonius and Taira (2008). For a uniform mesh, the mass matrix M is a constant multiple of the identity.

With these definitions, we can write Eq. (1.2) as a system of algebraic equations as

$$\begin{aligned} \begin{bmatrix} A &{} G &{} -R \\ D &{} 0 &{} 0 \\ E &{} 0 &{} 0 \end{bmatrix} \begin{bmatrix} u^{n+1} \\ p \\ f \end{bmatrix} = \begin{bmatrix} r^n \\ 0 \\ u_\Gamma ^{n+1} \end{bmatrix} + \begin{bmatrix} \text {bc}_1 \\ \text {bc}_2 \\ 0 \\ \end{bmatrix} , \end{aligned}$$
(1.7)

where the submatrix A is the result of the implicit velocity treatment. Here, it is obtained by the implicit trapezoidal rule on the viscous term yielding \(A=\frac{1}{\Delta t} M - \frac{1}{2}L\). The convection term is discretized by the second-order Adams–Bashforth method, leading to the right-hand side \(r^n = [\frac{1}{\Delta t} M - \frac{1}{2}L ] u^n + \frac{3}{2} N(u^n) - \frac{1}{2}N(u^{n-1})\). The inhomogeneous terms \(\text {bc}_1\), \(\text {bc}_2\) depend on the particular boundary conditions, which are discussed later. Using the above properties of the submatrices, Eq. (1.7) can be rewritten as

$$\begin{aligned} \begin{bmatrix} A &{} G &{} E^\dagger \\ G^\dagger &{} 0 &{} 0 \\ E &{} 0 &{} 0 \end{bmatrix} \begin{bmatrix} u^{n+1} \\ p \\ \tilde{f} \end{bmatrix} = \begin{bmatrix} r^n +\text {bc}_1 \\ -\text {bc}_2 \\ u_\Gamma ^{n+1} \end{bmatrix} , \end{aligned}$$
(1.8)

where \(\tilde{f}\) is the scaled boundary force, which accounts for the scaling factor when expressing R with \(E^\dagger \). The form of Eq. (1.8) is the Karush–Kahn–Tucker (KKT) system, where \((p,\tilde{f})\) is the set of Lagrange multipliers to satisfy a set of kinematic constraints. These constraints are purely algebraic, and there is no need for the pressure and boundary force to be distinguished anymore. Thus, we can group the Lagrange multipliers and the submatrices as \(\lambda =[ p, \tilde{f} ]\) and \(Q = [G, E^\dagger ]\). The above system is algebraically identical to traditional discretizations of the NSE and allows the use of standard solvers. Here, the (projection) fractional step algorithm is applied to Eq. (1.8), which can be expressed as an approximate LU decomposition of the left side matrix (Perot 2000), which yields the immersed boundary projection method (IBPM):

$$\begin{aligned}&Au^*= r_1, \quad \text {(Solve for intermediate velocity)} \end{aligned}$$
(1.9)
$$\begin{aligned}&Q^\dagger A_{j}^\ddagger Q \lambda = Q^\dagger u^*-r_2, \quad \text {(Solve modified Poisson equation)} \end{aligned}$$
(1.10)
$$\begin{aligned}&u^{n+1} = u^*- A^\ddagger _j Q \lambda \quad \text {(Projection step)}, \end{aligned}$$
(1.11)

where \(A^\ddagger _j\) is the jth order Taylor series expansion of \(A^{-1}\) with respect to \(\Delta t\), and the explicit terms on the right-hand side are denoted by \(r_1\) and \(r_2\). Note that in Taira and Colonius (2007), A and \(Q^\dagger A_j^\ddagger Q\) are constructed to be symmetric positive-definite operators such that the system can be solved efficiently with the conjugate-gradient method. Thus, the no-slip boundary condition is enforced on the solution by projecting the intermediate velocity field into the solution space that satisfies both divergence-free and no-slip constraints.

The IBPM is found to be second-order in time and first-order accurate in space.Footnote 1 There is no need for a constitutive relation to compute the boundary force. The IBPM therefore does not have any stability restrictions associated with the immersed surface, and the time step restrictions are imposed only by the choice of the marching scheme.

2.2 Nullspace Method for the Immersed Boundary Method

The nullspace or discrete streamfunction approach was originally proposed for solving Eq. (1.2) without the immersed boundary (Hall 1985; Chang et al. 2002), where only the incompressibility constraint needs to be satisfied. Using the discrete streamfunction s such that

$$\begin{aligned} u=Cs, \end{aligned}$$
(1.12)

where the discrete curl operator C is constructed with column vectors corresponding to the basis of the nullspace of D. It follows that

$$\begin{aligned} DC =0, \end{aligned}$$
(1.13)

which automatically satisfies the incompressibility constraint for all times.

In addition, left-multiplication of the momentum equation with \(C^\dagger \) removes the pressure term and thus reduces to a single equation to be solved per time step

$$\begin{aligned} C^\dagger A C s^{n+1} = C^\dagger (r_1^n + \text {bc}_1). \end{aligned}$$
(1.14)

Note that solution of the pressure Poisson equation is not required here and therefore the most expensive part of the fractional step method is eliminated, while exactly satisfying the continuity equation. In addition, the errors from the approximate LU decomposition are eliminated, which is why this scheme is also called the exact fractional step method (Chang et al. 2002).

Furthermore, a second-order approximation of the circulation is obtained by \(\gamma = C^\dagger q\).

Especially in two-dimensional problems, where the streamfunction and vorticity have a single nonzero component, this can lead to a more efficient algorithm, even in the presence of an IB. For 2D problems, including the immersed boundary formalism into the nullspace approach leads to the KKT system (Colonius and Taira 2008)

$$\begin{aligned} \begin{bmatrix} C^\dagger A C &{} C^\dagger E^\dagger \\ E C &{} 0 \end{bmatrix} \begin{bmatrix} s^{n+1} \\ \tilde{f} \end{bmatrix} = \begin{bmatrix} C^\dagger r_1^n \\ u_\Gamma ^{n+1} \end{bmatrix}. \end{aligned}$$
(1.15)

The left-hand side matrix is symmetric but in general indefinite, which limits the efficiency for direct solutions. However, with the projection (fractional step) approach, we obtain

$$\begin{aligned}&C^\dagger A C s^*= C^\dagger R_1^n \end{aligned}$$
(1.16)
$$\begin{aligned}&E C (C^\dagger A C )^{-1}(E C )^\dagger \tilde{f} = E C s^*- u_\Gamma ^{n+1} \end{aligned}$$
(1.17)
$$\begin{aligned}&s^{n+1} = s^*- (C^\dagger A C )^{-1} (E C )^\dagger \tilde{f}. \end{aligned}$$
(1.18)

A direct solution of the above system requires a nested iteration to solve the modified Poisson equation. For stationary bodies, however, one can compute a Cholesky factorization of \(E C ( C^\dagger A C )^{-1} (EC)^\dagger \) once, since the system size scales with the number of the immersed boundary points. Then, a system of equations of the form \(C^\dagger A C x = b\) needs to be solved only once per Lagrangian force.

In Colonius and Taira (2008), it was shown that for a uniform grid with simple boundary conditions, a similar system to Eq. (1.9) can be solved efficiently using fast sine transforms. Assuming that the velocity outside the computational domain is known, simple Dirichlet boundary conditions can be applied to the velocity normal to the sides of the domain, while Neumann boundary conditions are imposed on the velocity tangent to the sides.

No-penetration boundary conditions for the normal component of the velocity and a zero vorticity (or no-stress) condition for the tangent components are natural boundary conditions for external flows, given a sufficiently large domain. With these simplifications, one can write the semi-discrete momentum equation as

$$\begin{aligned} \frac{\mathrm{d} \gamma }{\mathrm{d} t} = C^\dagger E^\dagger \tilde{f} = -\beta C^\dagger C \gamma + C^\dagger N(u) + \text {bc}+\gamma , \end{aligned}$$
(1.19)

where \(L q = -\beta C C^\dagger u = -\beta C \gamma \) has been used. Here, \(\beta =1/{\Delta x^2 \mathrm{Re}}\) is constant. Under the aforementioned assumptions, the matrix \(-\beta C^\dagger C\) corresponds to the standard discrete Laplace operator with zero Dirichlet boundary conditions for \(\gamma \). This discrete Laplacian can be diagonalized by a sine transform, where the sine transform pair is denoted by

$$\begin{aligned} \hat{\gamma } = S \gamma \leftrightarrow \gamma = S \hat{\gamma }, \end{aligned}$$
(1.20)

and \((\hat{\cdot })\) indicates Fourier coefficients. In addition, we use \(\Lambda =S C^\dagger C S\), where \(\Lambda \) is a diagonal matrix with the eigenvalues of \(C^\dagger C\), which are positive and known analytically.

Using the same time-marching scheme as above, the system becomes

$$\begin{aligned}&S \left( I + \frac{ \beta \Delta t }{2} \Lambda \right) S \gamma ^*= \left( I - \frac{ \beta \Delta t }{2} C^\dagger C \right) \gamma ^n + \frac{\Delta t}{2} \left( 3C^\dagger N(u^n) - C^\dagger N(u^{n-1}) \right) + \Delta t \mathrm{bc}_{\gamma }, \end{aligned}$$
(1.21)
$$\begin{aligned}&EC\left( S \Lambda ^{-1} \left( I + \frac{ \beta \Delta t }{2} \Lambda \right) ^{-1} S \right) (EC)^\dagger \tilde{f} = ECS\Lambda ^{-1} S \gamma ^*- u_\Gamma ^{n+1}, \end{aligned}$$
(1.22)
$$\begin{aligned}&\gamma ^{n+1} = \gamma ^{*} - S \left( I + \frac{ \beta \Delta t }{2} \Lambda \right) ^{-1} S(EC)^\dagger \tilde{f}. \end{aligned}$$
(1.23)

The velocity \(u^n\) can then be found by

$$\begin{aligned} u^n = C s^n + \mathrm{bc}_u, \quad s^n= S\Lambda ^{-1} S \gamma ^n = \mathrm{bc}_s, \end{aligned}$$
(1.24)

where each of the boundary conditions involve the assumed known values at the velocity edge.

Note that in the transformed system only one linear system associated with a symmetric positive-definite operator, Eq. (1.22), needs to be solved. In addition, the matrix dimensions are now \(N_f \times N_f\), a drastic reduction compared to the original modified Poisson equation Eq. (1.10). A corresponding order of magnitude speedup was measured numerically in Colonius and Taira (2008). Further, if the body is stationary, the modified Poisson equation for the force can be solved efficiently using a triangular Cholesky decomposition.

To conclude, for a uniform grid and simple boundary conditions it is preferable to solve Eqs. (1.21)–(1.23). However, for simulations of external flows the simplified boundary conditions require large computational domains. Since the grid is also required to be uniform, this constraint quickly outweighs its benefits. However, the multi-domain approach as proposed in Colonius and Taira (2008) was found to be an effective solution to approximate the free-space boundary conditions. In Sect. 1.3, an IB method based on lattice Green’s function is presented, which alleviates the need of far-field approximation and satisfies the free-space boundaries exactly.

2.3 Accurate Calculation of Surface Stresses and Forces

In this section, we will present a procedure to accurately calculate surface stresses and forces in the context of IB methods as proposed in Goza et al. (2016). In particular, we will focus on the set of IB methods that solve for surface stresses by imposing velocity boundary conditions. This is, for example, the case in the IBPM above, but in contrast to the original IB method of Peskin (1972), where the surface stresses are derived from specific constitutive laws. Velocity-based IB methods have been shown to suffer from inaccurate surface stresses and may also exhibit spurious oscillations in time traces, which originate from the ill-posedness of the first-kind integral equation for the surface stresses. It is important to note that the velocity is typically convergent in spite of the poor accuracy of the surface stresses. Thus, the following procedure is important for either post-processing the stress data or when the IB method is used in conjunction with a structural solver (see Sect. 1.2.4).

To understand the origin of the spurious oscillations, we consider the Poisson equation in two dimensions with an unknown singular source term f that takes nonzero values only on the immersed surface \(\Gamma \) as a model problem:

$$\begin{aligned} \begin{array}{c}\displaystyle \nabla ^2 \varphi (\varvec{x}) = - \int \limits _\Gamma f(\varvec{X}(\varvec{\xi }) ) \delta (\varvec{x} - \varvec{X}(\varvec{\xi })) {\text {d}} \xi , \\ \displaystyle \varphi (\varvec{x}) = \varphi _{\partial \Omega }(\varvec{x}), \; \varvec{x} \in \partial \Omega , \\ \displaystyle \int \limits _\Omega \varphi (\varvec{x}) \delta (\varvec{x} - \varvec{X}(\varvec{\xi })) {\text {d}}\varvec{x} = \varphi _\Gamma (\varvec{X}(\varvec{\xi })). \end{array} \end{aligned}$$
(1.25)

While numerical solutions of this equation and their errors have been analyzed for prescribed source terms f (Tornberg and Engquist 2004; Zahedi and Tornberg 2010), it is explicitly solved for in what follows by incorporating the third equation as a boundary constraint in order to mimic velocity-based IB method as closely as possible.

The immersed boundary \(\Gamma \) is taken to be a circle of radius 1/2 in a unit square and is centered at \(\varvec{x} = 0\),\( \varphi _{\partial \Omega }(\varvec{x}) = 1 - \frac{1}{2}\log (2|\varvec{x}|)\), and \( \varphi _{\Gamma }(\varvec{X}) = 1\). The exact solution to (1.25) is given by

$$\begin{aligned} \varphi _\mathrm{ex}(\varvec{x})&= {\left\{ \begin{array}{ll} 1 &{} |\varvec{x} | \le \frac{1}{2}, \\ 1 - \frac{1}{2}\log (2|\varvec{x}|) &{} |\varvec{x} | > \frac{1}{2}, \end{array}\right. } \end{aligned}$$
(1.26)
$$\begin{aligned} f_\mathrm{ex}(\varvec{X})&= 1 . \end{aligned}$$
(1.27)

Similar to the integrated surface force in the context of IB, we also define \(F_\mathrm{ex} = \int _\Gamma f_\mathrm{ex}(\varvec{X}(\varvec{\xi })) \mathrm{d} \varvec{\xi }= \pi \). As was done in previous sections, the delta function is replaced with a smeared delta function, \(\delta _h(\varvec{x} - \varvec{X}( \varvec{\xi }))\), which is continuous with nonzero but compact support and is defined in terms of the grid spacing \(\Delta x\). The numerical solution for a given grid spacing approximates

$$\begin{aligned} \varphi (\varvec{x}) = - \int \limits _\Omega \int \limits _\Gamma f(\varvec{X}( \varvec{\xi }')) \delta _h(\varvec{x}' - \varvec{X}( \varvec{\xi }')) G^L(\varvec{x};\varvec{x}')\mathrm{d} \varvec{\xi }'\mathrm{d}\varvec{x}', \end{aligned}$$
(1.28)

where \(G^L(\varvec{x};\varvec{x}')\) denotes the Green’s function of the Poisson problem, and \(\delta _h\) indicates the smeared delta function (see also Sect. 1.3 for further details). To obtain the unknown source term f, Eq. (1.28) is multiplied by \(\delta _h\) and integrated over the domain \(\Omega \):

$$\begin{aligned} \int \limits _\Omega \int \limits _\Omega \int \limits _\Gamma f(\varvec{X}( \varvec{\xi }')) \delta _h(\varvec{x}' - \varvec{X}( \varvec{\xi }')) G^L(\varvec{x};\varvec{x}') \delta _h(\varvec{x} - \varvec{X}(\varvec{\xi }))\mathrm{d} \varvec{\xi }' \mathrm{d}\varvec{x}'d\varvec{x} = - \varphi _\Gamma (\varvec{X}(\varvec{\xi })), \end{aligned}$$
(1.29)

and \(\varphi (\varvec{x})\) may be obtain upon substitution f into Eq. (1.28). Note that since \(\delta _h\) is continuous, the kernel in the integral equation Eq. (1.29) is continuous and has finite support, which makes the integral operator compact and with a formally unbounded inverse (Kress 2014). A direct consequence is that discretizations of this equation lead to inaccurate surface source terms.

Examples of smeared delta functions include

  • A 2-point hat function:

    $$\begin{aligned} \delta _h^\mathrm{hat}(r) = {\left\{ \begin{array}{ll} \frac{1}{\Delta x} - \frac{|r|}{\Delta x^2}, &{} |r| \le \Delta x \\ 0, &{} |r| > \Delta x \end{array}\right. } \end{aligned}$$
    (1.30)
  • A 3-point function:

    $$\begin{aligned} \delta _h^3 (r) = {\left\{ \begin{array}{ll} \frac{1}{3\Delta x} \left( 1 + \sqrt{1 -3\left( \frac{r}{\Delta x}\right) ^2} \right) , &{} |r| \le \frac{\Delta x}{2} \\ \frac{1}{6\Delta x} \left( 5 - \frac{3|r|}{\Delta x} - \sqrt{ 1 - 3\left( 1 - \frac{|r|}{\Delta x}\right) ^2 } \right) , &{} \frac{\Delta x}{2} \le |r| \le \frac{3\Delta x}{2} \\ 0, &{} |r| > \frac{3\Delta x}{2} \end{array}\right. } \end{aligned}$$
    (1.31)
  • A 4-point cosine function:

    $$\begin{aligned} \delta _h^\mathrm{cos}(r) = {\left\{ \begin{array}{ll} \frac{1}{4\Delta x}\left( 1 + \mathrm{\cos }\left( \frac{\pi r}{2\Delta x}\right) \right) , &{} |r| \le 2\Delta x\\ 0, &{} |r| > 2\Delta x \end{array}\right. } \end{aligned}$$
    (1.32)
  • A Gaussian function:

    $$\begin{aligned} \delta _h^G(r) = {\left\{ \begin{array}{ll} \sqrt{\frac{\pi }{36\Delta x^2}} \mathrm{e}^\frac{-\pi ^2 r^2}{36\Delta x^2}, &{} |r| \le 14\Delta x \\ 0, &{}|r| > 14\Delta x \end{array}\right. } \end{aligned}$$
    (1.33)

Discretization of Eq. (1.25) yields

$$\begin{aligned} L \varphi = -Rf + b_L, \end{aligned}$$
(1.34)
$$\begin{aligned} E \varphi = \varphi _\Gamma , \end{aligned}$$
(1.35)

and combining Eq. (1.34) and Eq. 1.35 results in

$$\begin{aligned} EL^{-1}Rf = - \varphi _\Gamma + EL^{-1}b_L, \end{aligned}$$
(1.36)

which is a discretization of the integral equation (1.29).

In Goza et al. (2016), Eq. (1.36) was solved numerically using a finite difference approximation. In the following, \(n_b\) and \(n_g\) are used to denote the number of points on the immersed body and the computational domain, respectively. In Fig. 1.2, it is apparent that the source term f does not converge with grid refinement, whereas the integrated source term F and the solution \( \varphi \) do converge at first order to their exact solutions. Convergence of F is a consequence of solving Eq. (1.36). This is in contrast to other velocity-based IB methods, which only approximately enforce the boundary constraint. Such methods introduce inaccuracies in F (Uhlmann 2005; Huang and Sung 2009; Zhang and Zheng 2007), although Yang et al. (2009) proposed improvements.

Fig. 1.2
figure 2

Reprinted from Goza et al. (2016) with permission

Errors in \(\tilde{f}\), F, and \( \varphi \) versus grid spacing (h) for the Poisson problem. \(\circ \): \(\delta _h^\mathrm{hat}\), \(\diamond \): \(\delta _h^{3}\), \(\triangle \): \(\delta _h^\mathrm{cos}\), \(\square \): \(\delta _h^{G}\), --: first-order convergence.

From Fig. 1.3, it is also apparent that Rf does not converge to \(Rf_\mathrm{ex}\) but \(EL^{-1}Rf\) converges to \(EL^{-1}Rf_\mathrm{ex}\). Thus using the exact force \(f_\mathrm{ex}\) to enforce the boundary condition, would not produce \( \varphi _\Gamma \) exactly, but rather converge to it at first order (see also Tornberg and Engquist 2004).

Fig. 1.3
figure 3

Reprinted from Goza et al. (2016) with permission

Errors in Rf and \(EL^{-1}Rf\) versus grid spacing (h) for the Poisson model problem. \(\circ \) :\(\delta _h^\mathrm{hat}\), \(\diamond \): \(\delta _h^{3}\), \(\triangle \): \(\delta _h^\mathrm{cos}\), \(\square \): \(\delta _h^{G}\), --: first-order convergence.

In Goza et al. (2016), the convergence behavior was studied further using a singular value decomposition (SVD) of \(EL^{-1}=U \Sigma V^\dagger \). Using this decomposition, \(R f_\mathrm{ex}\) may be written as a projection onto the basis of vectors formed by V:

$$\begin{aligned} Rf_\mathrm{ex} = \sum _{j = 1}^{n_b} \alpha _j^\mathrm{ex} v_j. \end{aligned}$$
(1.37)

Similarly, \(EL^{-1}Rf_\mathrm{ex}\) may be expressed as

$$\begin{aligned} EL^{-1}Rf _\mathrm{ex}= \sum _{j=1}^{n_b} \alpha _j^\mathrm{ex} \sigma _j u_j \end{aligned}$$
(1.38)

where \(\sigma _1,\dots ,\sigma _{n_b}\) are the singular values, and the left (right) singular vectors are denoted by \(u_j\) (\(v_j\)) corresponding to \(\sigma _j\). The coefficients are defined as \(\alpha _j^\mathrm{ex} := (v_j^TRf_\mathrm{ex})\).

Analogous expressions can be written for Rf by replacing \(f_\mathrm{ex}\) with f in (1.37) and (1.38). It was shown in Goza et al. (2016) that the sum \(\sum _{j=1}^{n_b}\alpha _j\) does not converge to \(\sum _{j=1}^{n_b}\alpha _j^\mathrm{ex}\) under grid refinement, but converges when scaled by the \(\sigma _j\). Since \(EL^{-1}\) is a discrete integral operator, the \(\sigma _j\) decay to small values (Hansen 1998) and the error is thus caused by high-index coefficients \(\alpha _j\) corresponding to small \(\sigma _j\).

Hence, smeared delta functions with rapidly decaying \(\alpha _\mathrm{ex}\) are favorable as spurious high-index coefficients can be filtered out effectively without loss of physical information. In contrast, delta functions with slow decay may lead to loss of physical information and thus inaccurate source terms due to inaccurate high-index coefficients.

An efficient filtering can be achieved by penalizing the spurious components of f. This can be done by pre-multiplying the source term with \(\hat{E}R\) using a weighted interpolant \(\hat{E} = EW\), which interpolates the smeared source term Rf onto the immersed body while preserving its integral value. The filtered source term is then \(\hat{f} = \hat{E}Rf\).

In particular, W can be defined by a diagonal matrix with entries given by

$$\begin{aligned} W_{ii} = {\left\{ \begin{array}{ll} 1/(R\varvec{1})_i, &{} (R\varvec{1})_i \ne 0 \\ 0, &{} \text {else}, \end{array}\right. } \end{aligned}$$
(1.39)

where \(\varvec{1} = [1, 1, \ldots , 1]^T\in \mathbb {R}^{n_g \times 1}\) and \((R\varvec{1})_i\) is the ith entry in the vector \(R\varvec{1}\). Note that the weights are only nonzero within the support of the smeared delta function. The source term is redistributed by the filter \(\hat{E}R\) by convolution with a kernel of smeared delta functions.

The rate of filtering of \(\hat{E}R\) is proportional to the smoothness of the smeared delta function. This is a consequence of \(\hat{E}R\) being an integral operator, for which the decay rate of its singular values is determined by the smoothness of its kernel (Hansen 1998). Applying this filtering technique yields more accurate source terms f as shown in Fig. 1.4. Indeed, the infinitely differentiable \(\delta ^G_h\) shows first-order convergence to \(f_\mathrm{ex}\), whereas the slow decay of the coefficients \(\alpha _j\) hinders convergence for \(\delta _h^\mathrm{hat}\), \(\delta _h^3\), and \(\delta _h^\mathrm{cos}\). Finally, it is worth mentioning that filtering does not affect F by construction of \(\hat{E}R\), and the solution \( \varphi \) is also unchanged since filtering is a post-processing step.

Fig. 1.4
figure 4

Reprinted from Goza et al. (2016) with permission

Errors in \(\hat{f}\), F, and \( \varphi \) versus grid spacing (h) for the Poisson problem. \(\circ \): \(\delta _h^\mathrm{hat}\), \(\diamond \): \(\delta _h^{3}\), \(\triangle \): \(\delta _h^\mathrm{cos}\), \(\square \): \(\delta _h^{G}\), --: first-order convergence.

The extension of this filtering technique to the Navier–Stokes equation is straightforward. In particular, multiplication by the smeared delta and integration over the domain yields:

(1.40)

Analogous to the example above, the integral operator of Eq. 1.40 has an unbounded inverse because it contains a continuous kernel for any \(\Delta x\). Hence, the same logic applies as above, and filtering is required to obtain accurate results. In the next section, this filtering approach is used for fully coupled fluid–structure interaction simulations.

2.4 Strongly Coupled Fluid–Structure Interaction

In this section, we present the extension of the IBPM to a strongly coupled fluid–structure interaction (FSI) solver for thin elastic structures (Goza and Colonius 2017).

In general, for FSI simulations, one can distinguish between monolithic and partitioned methods. In the monolithic approach, the fluid and structural equations are described with one system of equations using the same discretization scheme, which is solved by a single solver. By construction, consistent fluid–structure interface conditions are imposed in monolithic solvers. On the other hand, the partitioned approach uses individual solvers for the fluid and the structural equations, which are then coupled via appropriate boundary conditions to satisfy the solid–fluid interface conditions. This is a modular approach, which enjoys popularity for industrial as well as academic applications since separately optimized solvers for the fluid and the solid domain can be utilized. On the other hand, the main challenge of partitioned approaches is that the solid–fluid interface conditions are not implicitly satisfied. Hence, within the context of partitioned approaches, there is yet another distinction regarding the coupling methodology, namely between weakly and strongly coupled FSI schemes. While weakly coupled methods do not enforce the (nonlinear) fluid–solid interface constraints at each time step, strongly coupled methods do converge to the monolithic equations using subiterative schemes.

On the one hand, this makes strongly coupled methods computationally more expensive. On the other hand, the staggered nature of weakly coupled schemes makes them susceptible to the so-called added-mass effect, where spurious energy is generated at the solid–fluid interface (Piperno and Farhat 2001). In particular for small solid–fluid density ratios, this can lead to fatal instabilities (Causin et al. 2005; Borazjani et al. 2008; Le Tallec 2001; Förster et al. 2007; Li and Favier 2017). For that reason we restrict ourselves to strongly coupled methods.

To impose the nonlinear interface constraint, most strongly coupled methods require the solution of a large nonlinear system. The block Gauss–Seidel method is a commonly used iterative procedure for solving the nonlinear system of equations, though it requires a relaxation parameter (often chosen heuristically) and typically converges slowly for small structural densities. Another common nonlinear solver is the Newton–Raphson method, which removes the relaxation parameter and typically converges rapidly even for small density ratios. However, this approach involves linear systems with large Jacobian matrices that cannot be solved directly, necessitating the use of large matrix-vector products in the context of some iterative solution process (Degroote et al. 2009; Mori and Peskin 2008; Hou et al. 2012). Among others, these strategies are reviewed in Sotiropoulos and Yang (2014).

In the following, we focus on thin elastic structures and solve the nonlinear algebraic system using the Newton–Raphson method. However, we avoid the need to solve a large linear system (without introducing any additional approximation into the solution process) by employing a block-LU factorization of the linearized system (Goza and Colonius 2017). The fluid part of the system is treated with the IBPM as outlined above.

For the coupled fluid–structure problem, the governing equations in Eq. (1.1) are extended by the structural equation as

$$\begin{aligned}&\frac{\partial \varvec{u} }{\partial t} + \varvec{u} \cdot \nabla \varvec{u} = - \nabla p + \frac{1}{\mathrm{Re}} \nabla ^2 \varvec{u} + \int \limits _{\Gamma (t)} \varvec{f}_{\Gamma }(\varvec{X} (\varvec{\xi },t), t) \delta (\varvec{X}(\varvec{\xi },t)-\varvec{x}) \mathrm d \varvec{\xi }, \end{aligned}$$
(1.41a)
$$\begin{aligned}&\quad \nabla \cdot \varvec{u} =0, \end{aligned}$$
(1.41b)
$$\begin{aligned}&\quad \frac{\rho _s}{\rho _f} \frac{\partial ^2 \varvec{X}(\varvec{\xi },t)}{\partial t^2} = \frac{1}{\rho _f U_\infty ^2 } \nabla \cdot \varvec{\sigma } + \mathbf{g} (\varvec{X}) - \varvec{f}_\Gamma (\varvec{X}),\end{aligned}$$
(1.41c)
$$\begin{aligned}&\quad \int \limits _{\Omega } \varvec{u}(\varvec{x}) \delta (\varvec{x}-\varvec{X}(\varvec{\xi },t)){\mathrm{d}} \varvec{x} = u_{\Gamma }( \varvec{\xi },t) =\frac{\partial \varvec{X}(\varvec{\xi },t)}{\partial t}, \end{aligned}$$
(1.41d)

where the solid and fluid density are denoted by \(\rho _s\) and \(\rho _f\), respectively. The Cauchy stress is denoted by \(\varvec{\sigma }\), \(\mathbf{g} \) is a body force, and the characteristic velocity is \(U_\infty \). The time derivative in the above is understood to be Lagrangian and the Cauchy stress is related to the second Piola–Kirchhoff stress \(\varvec{S}_s\) by

$$\begin{aligned} \varvec{S}_s=J \varvec{F}^{-1} \varvec{\sigma }_s \varvec{F}^{-T}, \end{aligned}$$
(1.42)

where \(J=\det (\varvec{F})\) and \(\varvec{F}\) denotes the deformation gradient

$$\begin{aligned} \varvec{F}=\varvec{I} + \nabla \varvec{u}_s, \end{aligned}$$
(1.43)

and \(\varvec{u}_s\) is the displacement field of the solid. The second Piola–Kirchhoff stress is here defined as

$$\begin{aligned} \varvec{S}_s=\mathbb {C} : \varvec{E} \end{aligned}$$
(1.44)

where

$$\begin{aligned} \varvec{E}= \frac{1}{2} ( \varvec{F}^T \varvec{F} - \varvec{I} ) = \frac{1}{2}( \nabla \varvec{u}_s + \nabla \varvec{u}_s^T + \nabla \varvec{u}_s^T \nabla \varvec{u}_s ) \end{aligned}$$
(1.45)

is the Green–Lagrangian strain tensor and the stiffness tensor \(\mathbb {C}\) is related to Young’s modulus \(E_s\), the bulk shear modulus, and Poisson’s ratio \(\nu _s\).

The governing equations for the fluid region are discretized as above, and the solid equations can be discretized using a standard finite element procedure for thin elastic beams in a co-rotational formulation (see Goza and Colonius 2017; De Borst et al. 2012 for details), yielding the semi-discrete equation for the solid:

$$\begin{aligned} M_s \ddot{X} + K_s(X)=F_s(\mathbf{g} + W_s(X)f), \end{aligned}$$
(1.46)

where the mass matrix \(M_s\), the stiffness matrix \(K_s\), and load \(F_s\) are given by

$$\begin{aligned}&M_s=\frac{\rho _s}{\rho _f}\sum _{j}^{N_{\mathrm{el}}} \int \limits _{\Gamma _j^0} B^\dagger B {\mathrm{d}} \varvec{X}^0, \quad K_s(X) = \frac{1}{\rho _f U_\infty ^2} \sum _{j}^{N_{\mathrm{el}}} \int \limits _{\Gamma _j^0} B_E^\dagger \sigma _s {\mathrm{d}} \varvec{X}^0 \end{aligned}$$
(1.47)
$$\begin{aligned}&F_s= \sum _{j}^{N_{\mathrm{el}}} \int \limits _{\Gamma _j^0} B^\dagger B {\mathrm{d}} \varvec{X}^0 = \frac{\rho _f}{\rho _s} M_s. \end{aligned}$$
(1.48)

Here, the jth element of \(\Gamma \) in the undeformed domain is indicated by \(\Gamma _j^0\) and the shape function matrix as well as their derivatives are given by B and \(B_E\), respectively. This formulation is expressed in the co-rotational frame and therefore accounts for geometrical nonlinearity and assumes small strains (large strains can be incorporated into \(K_s\) without affecting the algorithm). For further details, we refer to standard finite element textbooks (De Borst et al. 2012; Bathe 1996).

Using the discretizations above, the fully coupled FSI equations can be written as a first-order system of differential-algebraic equation as

$$\begin{aligned}&C^\dagger C \dot{s} = -N(u) + C^\dagger L C s - C^\dagger E^\dagger \tilde{f}, \end{aligned}$$
(1.49)
$$\begin{aligned}&M_s \dot{u}_\Gamma = -K_s(X)+F_s(\text {g} + W_f(X)\tilde{f}) ,\end{aligned}$$
(1.50)
$$\begin{aligned}&\dot{X} =u_\Gamma ,\end{aligned}$$
(1.51)
$$\begin{aligned}&E C s -u_\gamma =0 . \end{aligned}$$
(1.52)

An Adams–Bashforth and Crank–Nicolson time-marching scheme is applied for the nonlinear term and the diffusive term, respectively, for Eq. (1.49) and an implicit Newmark scheme is used for Eqs. (1.50)–(1.51). Equation (1.52) is evaluated at the current time step. This yields the following nonlinear system of algebraic equations:

$$\begin{aligned}&C^\dagger A C s^{n+1} + C^\dagger E^\dagger \tilde{f}^{n+1} = r^n_f, \end{aligned}$$
(1.53)
$$\begin{aligned}&\frac{4}{\Delta t^2} M_s X^{n+1} + K_s(X^{n+1}) -F_s W^{n+1} \tilde{f}^{n+1} = r^n_{u_\Gamma }, \end{aligned}$$
(1.54)
$$\begin{aligned}&\frac{2}{\Delta t} X^{n+1} - u_\Gamma ^{n+1} = r_X^n, \end{aligned}$$
(1.55)
$$\begin{aligned}&E C s^{n+1} - u_\Gamma ^{n+1}=0, \end{aligned}$$
(1.56)

where \(A= \frac{1}{\Delta t} I - \frac{1}{2}L \), \(r^f_n = (\frac{1}{\Delta t} C^TC + \frac{1}{2} C^TLC) s^n + \frac{3}{2}C^TN(Cs^n) - \frac{1}{2}C^T N(Cs^{n-1})\), \(r^n_{u_\Gamma } = M(\frac{4}{\Delta t^2}X^n + \frac{4}{\Delta t} u_\Gamma + \dot{u}_\Gamma ^n) + Qg \), and \(r^X_n = u_\Gamma + \frac{2}{\Delta t}X^n\).

To solve the nonlinear system, an iterative procedure is applied and the solution at time step n is used to initialize the iterative procedure at \(k=0\). During the kth iteration, the variables are updated as \(X^{n+1}_{k+1}\) = \(X^{n+1}_{k+1} + \Delta X\) and \(u_{\Gamma ,k+1}^{n+1} =u_{\Gamma ,k}^{n+1} + \Delta u_{\Gamma } \), which yields the following system:

$$\begin{aligned}&\begin{bmatrix} C^TAC &{} 0 &{} 0 &{} C^TE^{\dagger } \\ 0 &{} 0 &{} \frac{4}{\Delta t^2}M + K_{k} &{} -F_sW^{n+1}_{k} \\ 0 &{} -I &{} \frac{2}{\Delta t}I &{} 0 \\ EC &{} -I &{} 0 &{} 0 \end{bmatrix} \begin{bmatrix} s^{n+1} \\ \Delta u_\Gamma \\ \Delta X \\ \tilde{f}^{n+1}_{k+1} \end{bmatrix}\nonumber \\&\quad = \begin{bmatrix} r^f_n + O(\Delta t) \\ r^n_{u_\Gamma } - \frac{4}{\Delta t^2} M X^{n+1}_{k} - K_s(X^{n+1}_{k} ) + O(\Delta t) \\ r_n^X - \frac{2}{\Delta t}X_{k}^{n+1} + u^{n+1}_{\Gamma ,k} \\ u^{n+1}_{\Gamma ,k} + O(\Delta t) \end{bmatrix} := \begin{bmatrix} r^f_n \\ r_{u_\Gamma ,k} \\ r_{X, k} \\ r_{c, k} \end{bmatrix}, \end{aligned}$$
(1.57)

where \(K_{k} = dK_s/dX|_{X = X^{n+1}_{k} }\). For flags, the stiffness matrix has well known analytical expressions (De Borst et al. 2012; Bathe 1996). The linear system Eq.(1.57) can be factored using a block-LU decomposition, which yields

$$\begin{aligned}&s^{*} = (C^TAC)^{-1}r^f_n \end{aligned}$$
(1.58)
$$\begin{aligned}&\begin{bmatrix} B^{n+1}_{k} &{} I \\ -\frac{2}{\Delta t} F_s W^{n+1}_{k} &{} \hat{K}_{k} \end{bmatrix} \begin{bmatrix} \tilde{f}^{n+1}_{k+1} \\ \Delta u_\Gamma \end{bmatrix} = \begin{bmatrix} E Cs^*- r_{c,k} \\ \frac{2}{\Delta t} r_{u_\Gamma ,k} - r_{X, k} \end{bmatrix} \end{aligned}$$
(1.59)
$$\begin{aligned}&\Delta X = \frac{\Delta t}{2} (\Delta u_\Gamma + r_{X, k} ) \end{aligned}$$
(1.60)
$$\begin{aligned}&s^{n+1} = s^{*} - (C^TAC)^{-1} C^TE^\dagger \tilde{f}^{n+1}, \end{aligned}$$
(1.61)

where \(\hat{K}_{k} := \frac{4}{\Delta t^2} M_s+ K_{k}\) and \(B^{n+1}_{k}:= E C(C^\dagger AC)^{-1}C^TE^\dagger \). The LU-factorized equations (1.58)–(1.61) are analogous to the previous factorizations but now include the fully coupled FSI scheme. Note that Eq. (1.58) does not depend on variables at time \(n+1\) and thus must only be solved once per time step. Moreover, \(s^{n+1}\) is only updated after Eqs. (1.59)–(1.60) have converged in the iterative process. Hence, the iterations are restricted to Eqs. (1.59)–(1.60) which have dimensions of the order of number of body points rather then the entire flow domain.

The Poisson-like problems arising from Eq. (1.58), Eq. (1.61) and from each matrix-vector multiply with \(B^{n+1}_{(k)}\) can be solved efficiently with fast Fourier transforms (FFT). In Goza and Colonius (2017), it was also argued that since the floating point operations of the FFT scale with the number points in the flow domain, it may be favorable to compute and store \((\hat{K}_k)^{-1}\). In that case, an analytical block Gaussian elimination of Eq. (1.59) may be performed to arrive at

$$\begin{aligned}&\left( B^{n+1}_{k} + \frac{2}{\Delta t}(\hat{K}_{k})^{-1}F_sW^{n+1}_{k}\right) \tilde{f}^{n+1}_{(k+1)} = EC s^{*} - r_{c,k} -\frac{2}{\Delta t} (\hat{K}_{k})^{-1} r^{u_\Gamma ,k} + r_{X,k} \end{aligned}$$
(1.62)
$$\begin{aligned}&\quad \Delta u_\Gamma = \frac{2}{\Delta t} (\hat{K}_{k})^{-1} ( r_{u_\Gamma ,k} + F_sW^{n+1}_{k}\tilde{f}^{n+1}_{k}) - r_{X ,k} \end{aligned}$$
(1.63)

Equation (1.62) can then be solved with a BICGSTAB scheme, which typically converges in a few iterations. In Goza and Colonius (2017), it was also shown that this iteration procedure typically converges in a few iterations and does not rely on heuristic relaxation parameters as for Gauss–Seidel-based approaches.

2.5 Example: The Inverted Flag Problem

Flow past a flag that is clamped at its leading edge is a canonical problem (Taneda 1968) and serves as an important benchmark problem for the development of numerical schemes (see Shelley and Zhang 2011 for a review). By contrast, when the flag is inverted, i.e., the trailing edge is clamped, only a few studies can be found in the literature (Kim et al. 2013; Gurugubelli and Jaiman 2015; Ryu et al. 2015). This configuration, however, is of interest due to its rich dynamical behavior, which includes small-deflection flapping, large-amplitude flapping, and chaotic flapping. From a numerical perspective, this setup is particular challenging as these regimes span a large range of solid–fluid density ratios and exhibit large deformations that require a strongly coupled FSI solver. In Goza et al. (2018), this setup was investigated using the approach described in the previous sections. In addition to validating the numerics, these studies show that the IB method can be readily adapted for use in stability and bifurcation analysis. A steady-state solver employing a Newton–Raphson iteration was used to determine (potentially unstable) equilibria of the full fluid–structure system, and linearizations of the discretized equations lead to large, sparse systems of algebraic equations whose stability properties were efficiently determined using Arnoldi methods.

For the inverted flag, there are three independent non-dimensional parameters that govern the system. These are the Reynolds number \(\mathrm{Re} = \frac{U_\infty L }{\nu _s}\), the mass ratio \(M_\rho = \frac{\rho _s h}{\rho _f L}\), and the bending stiffness \(K_B=\frac{D}{\rho _f U_\infty ^2 L^3}\), where \(\rho _f\) (\(\rho _s\)) is the fluid (structure) density, \(U_\infty \) is the free-stream velocity, L is the flag length, h is the flag thickness, and the flexural rigidity is given by \(D = Eh^3/(12(1-\nu ^2))\) with Young’s modulus E. In what follows, we consider the case of \(\mathrm{Re}=200\) and \(M_\rho =0.05\) and present the effect of decreasing the flag’s stiffness \(K_B\). More configurations and thorough analysis can be found in Goza et al. (2018).

With decreasing \(K_B\), the flag undergoes a transition from the undeformed equilibrium (I) regime to the deformed equilibrium (II) through a divergence instability. With decreasing stiffness, the deformed equilibrium is associated with an increasingly large tip deflection and transitions from stable to unstable regimes. In particular, the small-deflection flapping regime (III) is reached by a supercritical Hopf bifurcation of the deformed equilibrium state. Decreasing the flag’s stiffness further leads to large-amplitude flapping (IV, see also Fig. 1.5), which can be associated to classical vortex-induced vibration for the small density ratios as presented here. This is in contrast to heavier flags, for which large-amplitude flapping is not a classical vortex-induced vibration. For a stiffness of \(K_B=0.32\), snapshots of one flapping period are shown in Fig. 1.5 by means of vorticity contours.

Fig. 1.5
figure 5

Reprinted from Goza et al. (2018) with permission

Vorticity contours at four snapshots of a flapping period of a flag in large-amplitude flapping for \(M_\rho = 0.05\). The Reynolds number and flag flexibility were chosen as \(\mathrm{Re} = 200, K_B = 0.32\). Contours are in 18 increments from −5 to 5.

With decreasing stiffness, the system transitions to the chaotic flapping regime (V), and finally to the deflected mode regime (VI), where oscillations are primarily driven by vortex shedding. The chaotic regime is characterized by a strange attractor that alternatively samples regimes IV and VI.

These phenomena are summarized in the bifurcation diagram in Fig. 1.6 as obtained through nonlinear simulations. The simulations were started with an undeflected flag and an impulsively started flow at free-stream velocity \(U_\infty \). During the initial transient, a small body force was used to trigger any instabilities in the system. All simulations were run for at least 15 flapping cycles except for the chaotic state which requires 55 cycles. The first several cycles were neglected to avoid accounting for initial conditions. In Fig. 1.6, a set of markers at a given stiffness represents the tip deflection values \(\delta _\mathrm{tip}\) from a single nonlinear simulation when the flag changes direction. That is, the markers correspond to the zero-tip-velocity Poincaré sections of a velocity–displacement phase portrait of the leading edge. In addition, solid and dashed lines represent stable and unstable equilibria, respectively.

Fig. 1.6
figure 6

Reprinted from Goza et al. (2018) with permission

Bifurcation diagram of inverted flag dynamics at \(\mathrm{Re} = 200\), showing tip deflection \(\delta _{tip}\) as a function of inverse stiffness (\(1/K_B\)). Regimes are denoted as I: undeformed equilibrium, II: deformed equilibrium, III: small-deflection deformed flapping, IV: large-amplitude flapping, V: chaotic flapping, VI: deflected mode.

3 Fast Lattice Green’s Function for External Flows

In this section, the immersed boundary lattice Green’s function (IBLGF) method as proposed in Liska and Colonius (2017) is presented. The IBLGF is based on the unbounded domain lattice Green’s function (LGF) flow solver (Liska and Colonius 2016) and the distributed Lagrange multiplier method to impose the no-slip boundary condition. The governing Navier–Stokes equations are spatially discretized on an unbounded staggered Cartesian grid, which retains crucial conservative, commutative, orthogonality, and symmetry properties of standard staggered Cartesian discretizations of infinite domains.

The advantage, however, is the use of the lattice Green’s function technique, which implicitly satisfies the natural free-space boundary condition and allows block-adaptive grids to restrict the computation to a finite region (set of grid points) where the vorticity is nonzero (exceeds a small threshold). This is in contrast to common IB methods, which employ spatially truncated domains with approximate free-space boundaries. These approximations introduce blockage errors, which affect accuracy and may even change the dynamics of the flow (Tsynkov 1998; Colonius 2004; Pradeep and Hussain 2004). Thus, large computational domains in combination with stretched grids (Taira and Colonius 2007; Yun et al. 2006; Wang and Zhang 2011), local refinement (Roma et al. 1999; Griffith et al. 2007), and far-field approximations (Colonius and Taira 2008) are required to limit influence of the approximate free-space boundary condition (see also Sect. 1.2). In contrast, due to the natural free-space boundary inherent to IBLGF, an adaptive domain snugly conforming to regions of non-negligible vorticity and free of free-space boundary errors may be used for IBLGF.

By using a viscous integrating factor half-explicit Runge–Kutta scheme (IF-HERKS) in combination with an approximation-free nested projection technique and exploiting the aforementioned algebraic properties of the discrete operators, the projection steps reduce to simple discrete elliptic problems. These can in turn be solved efficiently using parallel lattice Green’s function fast multipole methods (LGF-FMM) (Liska and Colonius 2014).

The operators satisfy the following topological and mimetic properties:

$$\begin{aligned}&\text {Symmetry} \quad \qquad \bar{D}=-G^\dagger , \bar{G}=-D^\dagger , \quad \bar{C}=C^\dagger \end{aligned}$$
(1.64)
$$\begin{aligned}&\text {Orthogonality} \quad \text {Null}(C) = \text {Im}(G), \text {Null}(D) =\text {Im}(G) \end{aligned}$$
(1.65)
$$\begin{aligned}&\text {Mimetic} \qquad \qquad L_{\mathcal {C}} = -G^\dagger G, L_\mathcal {F}=-GG^\dagger , L_\mathcal {E}=-D^\dagger D, L_\mathcal {V}=-D D^\dagger \end{aligned}$$
(1.66)
$$\begin{aligned}&\text {Commutativity} \quad L_\mathcal {F}G=G L_\mathcal {C} \end{aligned}$$
(1.67)

3.1 Time Integration

In incompressible flow solvers, it is typical to use split time-stepping schemes where the viscous terms are advanced with an implicit method (alleviating any viscous time step constraint), whereas the advective terms are advanced with an explicit method which, despite introducing a CFL constraint on the time step, avoids iterative solution of nonlinear equations. A variety of specialized splitting methods have been employed, typically achieving second-order temporal accuracy. These schemes must also be cognizant of the kinematic constraints, which in general include enforcing a divergence-free velocity field but in the case of IB methods, also include enforcing the no-slip condition. In other words, the spatially discretized incompressible Navier–Stokes equations comprise a discrete algebraic equation of index 2 (DAE-i2). The CN-AB2 scheme used in the previous sections is a particularly common choice for tackling such systems.

In the LGF approach, there is an opportunity to improve the time-marching scheme because the viscous terms can be integrated exactly using an integrating factor, which in turn can be done efficiently using an LGF. Once this is done, the time stepper for the remaining DAE system need no longer be split, meaning that explicit Runge–Kutta methods for DAE systems suffice, which in turn enables a wide variety of tailored schemes (low dissipation, low memory, etc.) to be employed. In particular, a family of half-explicit Runge–Kutta (HERK) methods are derived in Liska and Colonius (2016). Note that the “half-explicit” terminology refers to the solution of ODEs and algebraic constraints—not to any viscous/inviscid splitting.

The discrete integrating factor \(E_\mathcal {Q}(t)\) is the solution of the discrete heat equation \(\frac{\mathrm{d} h}{\mathrm{d} t }= \kappa L_\mathcal {Q} h\). Hence, for a given u at time \(\tau \) and the integrating factor \(H_\mathcal {Q} = E_\mathcal {Q}\left( \frac{t- \tau }{(\Delta x)^2 {\mathrm{Re}} } \right) \), Eq.(1.2) for \(t > \tau \) is given by

$$\begin{aligned}&\frac{ {\mathrm{d}} v}{ {\mathrm{d}} t} + [H_\mathcal {F}(t)] \tilde{N}([H_\mathcal {F}^{-1}(t)]v,t) = -G b - [H_\mathcal {F}(t)][E(t)]^\dagger \tilde{f} , \end{aligned}$$
(1.68a)
$$\begin{aligned}&G^\dagger v=0, \end{aligned}$$
(1.68b)
$$\begin{aligned}&[E][H^{-1}_{\mathcal {F}}(t)]v=u, \end{aligned}$$
(1.68c)

where \(v=[H_\mathcal {F}(t)]u\) and \(b=[H_\mathcal {C}(t)]p\). The above system constitutes a DAE-i2 that can be solved efficiently using an s-stage HERK scheme. The s-stages of the HERK are defined using the superscript i and time \(t_k=k\Delta t\) with the time step \(\Delta t\) in indicated by subscript k. We now group the Lagrange multipliers, the right-hand side and the operators together such that

$$\begin{aligned} \lambda _k^i= \begin{bmatrix} p_k^i \\ \tilde{f}_k^i \end{bmatrix}, \quad \zeta _k^i= \begin{bmatrix} 0 \\ u(t_k^i) \end{bmatrix}, \quad Q^i= \begin{bmatrix} G&[E(t_k^i)]^\dagger \end{bmatrix}, \forall i \in [1,s] \end{aligned}$$
(1.69)

and we introduce the following:

$$\begin{aligned} u_k^i(\varvec{n}) = \left[ E_\mathcal {F} \left( \frac{- \bar{c} \Delta t}{ (\Delta x)^2 \mathrm{Re} }\right) \right] v_k^i(\varvec{n}), \quad p_k^i(\varvec{n} ) = \left[ E_\mathcal {F} \left( \frac{- \bar{c} \Delta t}{ (\Delta x)^2 \mathrm{Re} }\right) \right] b_k^i(\varvec{n}). \end{aligned}$$
(1.70)

The kth time step of the IF-HERK(\(u_k\), \(t_k\)) scheme with the shifted coefficients \(\tilde{a}_{i,j}\) and the shifted nodes \(\tilde{c}_i\) (Liska and Colonius 2016; Hairer et al. 2006) can be summarized as follows:

  1. 1.

    Initialize: Set \(u_k^0=u_k\), \(t_k^0=t_k\)

  2. 2.

    Multi-stage: for \(i=1,2, \cdots , s\) solve the linear system:

    $$\begin{aligned} \begin{bmatrix} (H_\mathcal {F}^i)^{-1} &{} Q_k^{i-1} \\ (Q_k^{i})^\dagger &{} 0 \end{bmatrix} \begin{bmatrix} u_k^i \\ \lambda _k^i \end{bmatrix} = \begin{bmatrix} r_k^i \\ \zeta _k^i, \end{bmatrix} \end{aligned}$$
    (1.71)

    where

    $$\begin{aligned} H_\mathcal {F}^i = E_\mathcal {F}\left( \frac{(\tilde{c}_i - \tilde{c}_{i-1})\Delta t }{ (\Delta x)^2 {\mathrm{Re}} } \right) , \quad r_k^i = h_k^i + \Delta t \sum _{j=1}^{i-1} \tilde{a}_{i,j} w_k^{i,j} +g_k^i \end{aligned}$$
    (1.72)
    $$\begin{aligned} g_k^i = -a_{i,i} \Delta t \tilde{N}(u_k^{i-1}, t_k^{i-1}) \quad t_k^i=t_k++\tilde{c}_i \Delta t. \end{aligned}$$
    (1.73)

    The variables \(h_k^i\) and \(w_k^{ki,j}\) are recursively computed for \(i >1 \) and \(j>i\) using

    $$\begin{aligned} h_k^i = H_\mathcal {F}^{i-1} h_k^{i-1}, \quad h_k^1=0 \end{aligned}$$
    (1.74)
    $$\begin{aligned} w_k^{i,j} = H_\mathcal {F}^{i-1} w_k^{i-1,j}, \quad w_k^{i,i}= (\tilde{a}_{i,i} \Delta t)^{-1}\left( Q_k^{i-1} \hat{\lambda }_k^i \right) \end{aligned}$$
    (1.75)
  3. 3.

    Finalize: Set \(u_{k+1} = u_k^s\), \(\lambda _{k+1}=( \tilde{a}_{s,s} \Delta t )^{-1} \hat{\lambda ^s_k}\) and \(t_{k+1}=t_k^s\).

3.2 Linear Solver

The solution of Eq. (1.71) dominates the computational costs and is efficiently solved using the exact projection technique. Note that in contrast to 2D discrete nullspace (discrete streamfunction) methods (see, Sect. 1.2), the following formulation does not express the discrete velocity–pressure equations as discrete streamfunction–vorticity equations. In three dimensions, the resulting discrete Poisson problems are scalar problems in the case of the velocity–pressure formulation but vector problems in the case of streamfunction–vorticity formulation. Equation (1.71) can be rewritten in terms of \(p_k^i\) and \(\tilde{f}_k^i\)

$$\begin{aligned} M_k^i \begin{bmatrix} u_k^i \\ \hat{p}_k^i \\ \tilde{f}_k^i \end{bmatrix} = \begin{bmatrix} (H_\mathcal {F}^i)^{-1} &{} G &{} (E_k^{i-1})^\dagger \\ G^\dagger &{} 0 &{} 0 \\ E_k^i &{} 0 &{} 0 \end{bmatrix} \begin{bmatrix} u_k^i \\ \hat{p}_k^i \\ \tilde{f}_k^i \end{bmatrix} = \begin{bmatrix} r_k^i \\ 0 \\ u_k^i \end{bmatrix}, \end{aligned}$$
(1.76)

where \(\hat{p}_k^i/p_k^i=\hat{f}_k^i/\tilde{f}_k^i=\tilde{a}_{s,s}\), \(u_k^i= u(t_k^i)\), and \(E_k^i = E(t_k^i)\). Note that \(M_k^i\) is in general not symmetric and cannot be symmetrized as the image of the regularization operator and the interpolation operator are different. The asymmetry is inherent to HERK integration of DAE systems of index 2 with time-dependent constraint operators (Hairer et al. 2006; Brasey and Hairer 1993). Note, however, \(M_k^i\) retains symmetry for flow past non-moving rigid bodies. The nested projection technique for Eq. (1.76), obtained from an operator–block-LU decomposition of \(M_k^i\) can be written in projection-like form

$$\begin{aligned} \text {Solve for intermediate velocity: } \quad&(H_\mathcal {F}^i)^{-1} u^{*} = r_k^i \end{aligned}$$
(1.77a)
$$\begin{aligned} \text {Solve for intermediate pressure: } \quad&G^\dagger H_\mathcal {F} G d^*= G^\dagger u^*\end{aligned}$$
(1.77b)
$$\begin{aligned} \text {Solve for intermediate IB forces: } \quad&S_k^i f^*=E_k^i[u^*- H_\mathcal {F}^iGd^*] -u^i_k \end{aligned}$$
(1.77c)
$$\begin{aligned} \text {Update forces: } \quad&\hat{f}_{k}^i = f^*\end{aligned}$$
(1.77d)
$$\begin{aligned} \text {Correct pressure: } \quad&\hat{p}_k ^i = p^*- (G^\dagger H_\mathcal {F}^i G )^{-1} G^\dagger H_\mathcal {F}^i (E_k^{i-1})^\dagger \hat{f}_k^i \end{aligned}$$
(1.77e)
$$\begin{aligned} \text {Correct velocity: } \quad&u_k^i = u^*- H_\mathcal {F}^i [ G\hat{p}_k^i + (E_k^{i-1})^\dagger \hat{f}_k^i]\ \end{aligned}$$
(1.77f)

where the force Schur complement of the LU decomposition of Eq. (1.76) \(S_k^i\) is given by

$$\begin{aligned} S_k^i = E_k^i H_\mathcal {F}^i [\mathrm{I} - G(G^\dagger H_\mathcal {F}^i G )^{-1} G^\dagger H_\mathcal {F}^i ] (E_k^{i-1})^\dagger , \end{aligned}$$
(1.78)

where the identity operator is indicated by \(\mathrm{I}\). By exploiting the mimetic, orthogonality and commutativity properties, the above can be rewritten in a computationally more convenient way such as

$$\begin{aligned} L_\mathcal {C} p^*&= -G^\dagger r_k^i \end{aligned}$$
(1.79a)
$$\begin{aligned} S_k^i \hat{f}_k^i&= E_k^i H_\mathcal {C}^i [ r_k^i - G^\dagger p^*] - u_k^i \end{aligned}$$
(1.79b)
$$\begin{aligned} \hat{p}_k^i&= p^*+ L_\mathcal {C}^{-1} G^\dagger (E_k^{i-1})^\dagger \hat{f}_k^i \end{aligned}$$
(1.79c)
$$\begin{aligned} u_k^i&= H_\mathcal {F}^i[r_k^i -G \hat{p}_k^i - (E_k^{i-1})^\dagger \hat{f}_k^i ], \end{aligned}$$
(1.79d)

where the Schur complement simplifies to

$$\begin{aligned} S_k^i = E_k^i [ H_\mathcal {F}^i +G(H_\mathcal {C}^i)^{-1} L_\mathcal {C}G^\dagger ] (E_k^{i-1})^\dagger . \end{aligned}$$
(1.80)

Note that with the exception of \(\hat{f}_k^i\), every term can efficiently be computed with either the point-operator representation of discrete operators or the Lattice Green’s function fast multipole method (LGF-FMM), which will be outlined in some detail in the next section.

With regards to the solving the force Schur complement (1.79b), there exits either the possibility to use dense linear algebra techniques or iterative methods. In case of iterative methods, the conjugate gradient is a suitable candidate for a symmetric Schur complement, implying rigid and stationary immersed boundaries or more generally, for moving or deforming geometries, Krylov solvers such as GMRES or BiCGSTAB. Note that for the rigid and non-moving case, the dense linear algebra route is more convenient since the construction of \(S_k^i\) needs to be done only once and a Cholesky decomposition can be stored and used to evaluate the forces.

3.3 Lattice Green’s Function Method

In this section, we focus on how to efficiently solve elliptic difference equations with the lattice Green’s function method (Liska and Colonius 2014) in unbounded domains as they occur in the IBLGF method. The solution may be obtained by convolution of the fundamental solution of the discrete operator (lattice Green’s function) with the source terms of the equation. The LGF can be derived from Fourier integrals and approximated through its through its asymptotic expansion. A significant advantage of the FLGF method is that the formally unbounded meshes may be truncated such that only regions with non-negligible source are retained in the computational domain, yielding an adaptive block-structured mesh as shown exemplary in Fig. 1.9.

In what follows, the three-dimensional Poisson equation will serve as a model equation, which is defined as:

$$\begin{aligned} \, [\Delta \varphi ](\varvec{x})=h(\varvec{x}), \quad {\text{ supp }}(h)\subseteq \Omega , \end{aligned}$$
(1.81)

where \(\varvec{x} \in \mathbb {R}^3\) and \(\Omega \) denotes a bounded domain in \(\mathbb {R}^3\). The target field \(\varphi \) can be obtained by convolution of the fundamental solution of the Laplace operator \({\mathrm{G}^L}(\varvec{x})= -1/(4\pi |\varvec{x}|)\) with the source field \(h(\varvec{x})\) such that

$$\begin{aligned} \varphi ( \varvec{x}) = [{\mathrm{G}^L} *h](\varvec{x})=\int \limits _\Omega {\mathrm{G}^L}(\varvec{x}- \varvec{\xi }) h( \varvec{\xi }) {\mathrm{d}} \varvec{\xi }. \end{aligned}$$
(1.82)

In the discrete setting, Eq. (1.81) can be expressed as

$$\begin{aligned} \, [ L_{\mathcal {Q}} \varphi ](\varvec{x}_i)=h(\varvec{x}_i), \quad \mathrm{supp}(h)\subseteq \Omega _h, \end{aligned}$$
(1.83)

where \(\varphi ,h \in \mathbb {R}^{\mathcal Q}\), \(\varvec{x}_i \in \mathbb {Z}^3\), and \(\Omega _h\) is a bounded domain in \(\mathbb {Z}^3\). The target can then be obtained by discrete convolution such that

$$\begin{aligned} \varphi ( \varvec{x}_i) = [G^L *h](\varvec{x}_i )=\sum _{\varvec{x}_j \in \Omega _h} G^L(\varvec{x}_i - \varvec{x}_j) h( \varvec{x}_i), \end{aligned}$$
(1.84)

where \(G^L\) indicates the LGF of the discrete 7-pt Laplacian. By diagonalizing the Laplace operator \(L_{\mathcal {Q}}\) in Fourier space, an expression for \(G^L(\varvec{x}_i)\) can be derived (see, e.g., Delves and Joyce 2001; Glasser and Zucker 1977), yielding

$$\begin{aligned} G^L(\varvec{x}_i)=\frac{1}{8 \pi ^3 } \int \limits _{[ -\pi , \pi ]^3} \frac{ \exp {(-i \varvec{x}_i \varvec{\xi }) } }{ 2 \mathrm{\cos }(\xi _1) + 2 \mathrm{\cos }(\xi _2) + 2 \mathrm{\cos }(\xi _3) -6 } \mathrm{d} \varvec{\xi }. \end{aligned}$$
(1.85)

In addition, Eq.(1.85) can equivalently be written as a one dimensional, semi-infinite integral as

$$\begin{aligned} G^L(\varvec{x}_i)= - \int \limits _0^\infty \exp (-6 t) I_{x_1}(2t) I_{x_2}(2t) I_{x_3}(2t) \mathrm{d}t, \end{aligned}$$
(1.86)

where \(I_k(t)\) is the modified Bessel function of first kind and order k. Note that Eq.(1.86) can be evaluated using an adaptive Gauss–Kronrod quadrature or alike in a straightforward manner, but it is typically more efficient to evaluate the Green’s function through its asymptotic expansion in the far-field, i.e., large \(|\varvec{x}_i|\). In particular, the target field \(\varphi \) can be written as

$$\begin{aligned} \varphi (\varvec{x}_i) = \varphi ^{\mathrm{near}} (\varvec{x}_i) + \varphi ^{\mathrm{far}}(\varvec{x}_i) + \varepsilon (\varvec{x}_i), \end{aligned}$$
(1.87)

where

$$\begin{aligned} \varphi ^{\mathrm{near}} (\varvec{x}_i)&= \sum _{ \varvec{x}_j \in \Omega _h^{\mathrm{near}}(\varvec{x}_i) } G^L(\varvec{x}_i -\varvec{x}_j) h(\varvec{x}_j) \end{aligned}$$
(1.88)
$$\begin{aligned} \varphi ^{\mathrm{far}}(\varvec{x}_i)&= \sum _{\varvec{x}_j \in \Omega _h \setminus \Omega _h^{\mathrm{near}}(\varvec{x}_i) } A_G^q(\varvec{x}_i -\varvec{x}_j) h(\varvec{x}_j), \end{aligned}$$
(1.89)

and \(\Omega _h^{\mathrm{near}}\), \(\varepsilon (\varvec{x}_i)\) are the near field and the error due to approximating \(G^L(\varvec{x}_i)\) with \(A_G^q(\varvec{x}_i)\) in the far-field, respectively. The q-term asymptotic expansion of \(G^L(\varvec{x}_i)\) is defined such that \(G^L(\varvec{x}_i) =A^q_G( \varvec{x}_i ) + \mathcal {O}(|\varvec{x}_i|^{-2q-1} )\) and for \(q=2\) it reads

$$\begin{aligned} A_G^2 (\varvec{x}) = -\frac{1}{4 \pi |\varvec{x}| } - \frac{x_1^4+x_2^4+x_3^4 - 3 x_1^2 x_2^2 - 3 x_1^2 x_3^2 - 3 x_2^2 x_3^2 }{16 \pi |\varvec{x}|^7}. \end{aligned}$$
(1.90)

In practice, the results from direct integration of Eq.(1.86) are tabulated for the near-field (\(|\varvec{x}_i| \le 100\)), and the asymptotic expansion with \(q=3\) and \(q=2\) can be used in the far-fields for \(100< |\varvec{x}_i| \le 600\) and \(|\varvec{x}_i|>600\), respectively. This ensures an error bound of the asymptotic expansion compared to the direct integration of \( | \varepsilon | < 10^{-12}\).

3.3.1 Fast Convolutions

The direct evaluation of Eq.(1.84) requires \(\mathcal {O}(N^2)\) amount of work for N degrees of freedom and is therefore prohibitive for large computational domains. A remedy is the fast multipole method (FMM), which reduces the computational complexity from \(\mathcal {O}(N^2)\) to \(\mathcal {O}(N)\). In particular, the FLGF method (Liska and Colonius 2014) uses a kernel-independent interpolation-based fast multipole method to compute the discrete convolutions in conjunction with block-wise FFT convolution. The FMM achieves linear complexity \(\mathcal {O}(N)\) by leveraging the fact that, the solution is much smoother in the far-field than in the near-field for an elliptic kernel. Thus, a low-rank representation of the kernel is sufficient to accurately compute the contribution of far-field, while only the near-field requires full-rank representation of the kernel. Using the generic interpolation function \(\phi (\varvec{x})\) and the coarse grained sampling points \(\varvec{x}_0,. . .,\varvec{x}_{n-1}\), a low-rank approximation of the kernel \(K(\varvec{x},\varvec{y})\) may be obtained by

$$\begin{aligned} \tilde{K}(\varvec{x},\varvec{y})=\sum _{i=0}^{n-1} \sum _{j=0}^{n-1} \phi (\varvec{x}) K(\varvec{x}_i, \varvec{y}_i) \phi (\varvec{y}). \end{aligned}$$
(1.91)

The discrete convolution can then be approximated by

$$\begin{aligned} \varphi (\varvec{x}_i) \approx \sum _{j=0}^{M-1} \tilde{K} (\varvec{x}_i, \varvec{y}_j) h( \varvec{y}_j ) = \sum _{j=0}^{M-1} \sum _{p=0}^{n-1} \sum _{q=0}^{n-1} \phi (\varvec{x}_i) K(\varvec{x}_p, \varvec{y}_q) \phi (\varvec{y}_j) h(\varvec{y}_j) \quad i=0,.. ., N-1, \end{aligned}$$
(1.92)

where N is the number of target points and M the number of source points. The near- and far-field contributions are accounted for by constructing a hierarchical decomposition of the domain for which Eq.(1.92) is evaluated recursively. Typically, an octree structure \(\mathcal {T}\) (quadtree in two dimensions) is used for this purpose. Let the tree have a depth \(L_B\) and the root is assumed to have level 0 and the base level \(L_B-1\) corresponds to physical domain. The tree nodes are also referred to as octants and octants without children are leaf nodes. The set of leafs on level l is indicated by \(B_{\mathrm{Leafs}}^l\). In the context of the FLGF, each tree node corresponds to a region, which is defined to be a Cartesian block of \(N_b=n_b^3\) cells. Further, the ith octant or block at level l is denoted by \(\mathcal {B}_i^l\) and the set of all octants at level l by \(B^l= \bigcup _{i=0}^{N_B^l} \mathcal {B}_i^l\), where \(N_B^l\) is the number of octants on level l. The set of children and the parents are denoted by \(\mathcal {C}(\mathcal {B}_i^l)\) and \(\mathcal {P}(\mathcal {B}_i^l)\), respectively.

The target field \(u_i^{L_{B}-1}\), defined on the octant \(\mathcal {B}_i^{L_{B}-1}\), consist of both near- and far-field contributions. The near-field contribution is given by the interaction, i.e., convolution, with region \(\mathcal {N}(\mathcal {B}_i^{L_{B}-1})\), containing the octant itself and the nearest neighbor octants on the finest tree level \(L_{B}-1\). The far-field contributions are then evaluated recursively for the levels \(l=L_{B}-1,\dots , 0\) and are defined as the convolution with octants in the influence region \(\mathcal {I} (\mathcal {B}_i^l) = \{ \hat{\mathcal {B}}_i^l \in \mathcal {F}(\mathcal {B}_i^l) \setminus \mathcal {F}(\mathcal {B}_i^{l-1}) \}\), which includes the well-separated octants, i.e., \(\mathcal {F} (\mathcal {B}_i^l) = \bigcup _{l=0}^{L_{B}-1} {B}^l \setminus \mathcal {N}(\mathcal {B}_i^l)\), but excludes the regions well-separated from its parents \(\mathcal {F}(\mathcal {P}(\mathcal {B}_i^{l}))\). Schematically, the domain decomposition in near and far-field regions is depicted in Fig. 1.7.

In the FLGF method, the octants are defined to be Cartesian blocks and the convolution between each block and its influence list can be computed by block-wise FFT-based convolutions, which reduces to a complex Hadamard product in Fourier space (see Liska and Colonius 2014, for details on FFT-based convolutions). Note that compared to a direct summation as in Eq.(1.84), the computational complexity is reduced from \(\mathcal {O}(N_b^2)\) to \(\mathcal {O}( N_b \log N_b)\) for each block convolution.

Fig. 1.7
figure 7

Reprinted from (Dorschner et al. 2020) with permission

Schematic of the hierarchical domain composition of the far-field (red, left) for an octant \(\mathcal {B}_i^{L_B-1}\) (blue, left). While the near-field consist of the nearest neighbors only, the far-field is composed out of the set of influence lists for all levels. For level l the influence list contains the children of the nearest neighbors of \(\mathcal {B}_i^{l}\)’s parent, which are not contained in the near-field, i.e., are well separated.

It should be clear from the above that given a union of source blocks \(B_s=\bigcup _{i=0}^{N_s-1} \mathcal {B}_{s,i}\) and target blocks \(B_t=\bigcup _{i=0}^{N_t-1} \mathcal {B}_{t,i}\) the convolution can be evaluated as the sum of the individual convolutions as

$$\begin{aligned} \varphi _i =\sum _{j \in B_s} {\mathrm{conv}}(G^L_{i-j}, f_j ), \quad \text {for } i=0,. . .,N_t-1, \end{aligned}$$
(1.93)

where the convolution operator is denoted as \(\mathrm{conv}\) and \(G^L_{i-j}\) is the vector containing the unique values of \(G^L(\varvec{x}_i-\varvec{x}_j)\) evaluated on the grid points \(\varvec{x}_j\) and \(\varvec{x}_i\) of the blocks \(\mathcal {B}_{t,j}\) and \(\mathcal {B}_{s,i}\), respectively.

Fig. 1.8
figure 8

Reprinted from (Dorschner et al. 2020) with permission

Schematic of the fast multipole method: Left: Upward pass—Source regularization . Middle: Level interaction—Convolution of a block (blue) with its influence list (red). Right: Downward pass—Compute and accumulate the induced fields at the interpolation nodes. Note that each FMM cell corresponds to a Cartesian block in the FLGF.

With these definitions and the corresponding tree structure, the evaluation of Eq.(1.92) can be split into three consecutive steps. The first step is the upward pass, where the effective source terms are computed on each level by iterating bottom-up through the tree. Second, for each level, the convolution of each octant with its influence region is computed. This is called the level interaction. Finally, in the downward pass (iterating from the root to the leafs), all contributions are interpolated and accumulated on the next level. Schematically, the FLGF method is shown in Fig. 1.8 and can be summarized by the following algorithm:

  1. 1.

    Upward pass: Compute effective source terms at interpolation nodes

    \(\text {For } l=L_{B}-2,...,0: \text { For } i=0,.. . N_B^l \)

    $$\begin{aligned} \hat{h}_i^l =\sum _{j \in {\mathcal {C}(\mathcal {B}_i^l)}} \hat{R}^{l+1} \hat{h}_j, \end{aligned}$$
    (1.94)

    where the regularization operator \(\hat{R}^{l+1}\) is the adjoint of the interpolation operator \(\hat{E}^{l+1}\)(see below).

  2. 2.

    Level Interaction: FFT convolution with the octant in the influence region

    \(\text {For } l=0,...,L_{B}-1: \text { For } i=0,.. . N_B^l \)

    $$\begin{aligned} \hat{v}_i^l = \sum _{j \in \mathcal {I}(\mathcal {B}_i^l)} {\mathrm{conv}}(G^L_{i-j},f_j), \end{aligned}$$
    (1.95)

    where \(\mathrm{conv}(\cdot )\) is the FFT convolution operator.

  3. 3.

    Downward pass: Compute and accumulate induced field at interpolation nodes

    \(\text {For } l=0,...,L_{B}-1: \text { For } i=0,.. . N_B^l \)

    $$\begin{aligned} \hat{\varphi }^l_i = \hat{v}^l_i + \hat{E}_i^{l-1} \hat{\varphi }^{l-1}_i, \end{aligned}$$
    (1.96)

    where the interpolation operator \(\hat{E}^l\) interpolates from the parent onto the child block.

Owing to the regularity of the Cartesian block mesh, the interpolation operators are implemented using Lagrangian polynomials, and \(n_I \le 10\) interpolation nodes are used to yield a relative interpolation error of \(\epsilon \approx 10^{-12}\) for an analytic function approximation. The regularization operator is given by the adjoint of the interpolation operator and often called anterpolation. In summary, the FLGF method combines the fastest methods for regular meshes, while retaining the geometrical flexibility and overall linear complexity inherent to FMM. Excellent computational rates and parallel performance have been reported in Liska and Colonius (2014) and (Dorschner et al. 2020).

3.3.2 Domain Adaptivity

As mentioned previously, the LGF method may truncate the formally unbounded computationally domain to regions with non-negligible source. When the LGF is employed in the context of the IBLGF this translates to solving the NSE only in regions that are dictated by the flow evolution and cells which, up to a prescribed threshold, do not affect the flow evolution may be removed in the course of a simulation. This is a direct consequence of the vorticity, \(\omega = \nabla \times \varvec{u}\), decaying exponentially at large distances form the immersed body. For instance, considering the solution of Eq. (1.79a):

$$\begin{aligned} p^*(\varvec{x}_i) = [G_\mathcal {C}^L *y] (\varvec{x}_i), \quad y(\varvec{x}_i)= [-G^\dagger r_k^i](\varvec{x}_i), \end{aligned}$$
(1.97)

where \(G^\dagger r_k^i\) is a discrete approximation of the divergence of the Lamb vector \(\nabla \cdot \varvec{l}\), where \(\varvec{l}= \varvec{\omega } \times \varvec{u}\), while \(\varvec{x}_i\) denotes a discrete location. Since \(\omega \rightarrow 0\) at large distances from the body, it follows that also \(\nabla \cdot \varvec{l}\) and its discrete counterpart become exponentially small. Thus, the domain on which the field is induced is finite and is truncated when \(G^\dagger r_k^i\) is smaller than a given threshold \(\epsilon \). When using this procedure, the discrete velocity needs to be refreshed using the discrete velocity \(w=C u\) in order to obtain a consistent velocity field. The domain adaptivity is implemented using the block-structured mesh as outlined above. For further implementation details on the domain adaptivity, the reader is referred to Liska and Colonius (2016).

3.4 Examples

3.4.1 Flow Past a Sphere

In this section, the benchmark simulation of the flow past an impulsively started sphere at Reynolds number \(\mathrm{Re}=3700\) (Liska and Colonius 2017) is summarized. Additional benchmarks and validation studies can be found in Liska and Colonius (2017), Mengaldo et al. (2017). The turbulent flow past a sphere at \(\mathrm{Re}=3700\) is a challenging, canonical benchmark problem and has thus been investigated by many researchers both experimentally (Kim and Durbin 1988) and numerically (Yun et al. 2006; Rodriguez et al. 2011; Dorschner et al. 2016). The nominal velocity of the sphere is (U, 0, 0) and a small, initial perturbation is introduced in the flow field in order to break any symmetries. The flow is computed for \(0 \le t^*/U \le 60\) using 81,920 Lagrangian markers, where \(t^*\) indicates initialization from a large-time solution of a sphere at \(\mathrm{Re}=1000\). The sphere has unit radius and the grid spacing was chosen conservatively as \(\Delta x \simeq 4.3 \times 10^{-3}\) to resolve the thin boundary layer on the surface of the sphere. The time step size is chosen such that the CFL number based on the maximum point-wise velocity remains below 0.9. The time-averaged results were obtained over the last five large-scale vortex shedding cycles (\(\mathrm{St}=0.215\)). A snapshot of the vortical structures using the Q-criterion is shown in Fig. 1.9 and is in line with what is reported in the literature. The adaptive nature of the grid is shown in Fig. 1.9, where the computational domain is comprised of only regions, where the vorticity is non-negligible. In this setup, the threshold for the grid adaptivity was chosen as \(\epsilon = 5 \times 10^{-4}\) and verified to accurately capture the unbounded domain flow. The flow is further characterized by the mean surfaces stresses and the net body forces. First, we consider the mean skin friction coefficient \(C_\mathrm{f}=\tau _w/(\frac{1}{2}\rho U^2 )\), where \(\tau _\mathrm{w}\) is the local wall shear stress and the pressure coefficient \(C_\mathrm{p} =(p-p_\infty ) /(\frac{1}{2}\rho U )\), where p and \(p_\infty \) are the local and the free-stream pressure, respectively. Note that the raw point-wise values of the surface stress tensor are partially filtered using the boundary force post-processing technique (Goza et al. 2016), to construct a smoothed boundary forces. The time-averaged results of \(C_\mathrm{p}\) and \(C_\mathrm{f}\) along the polar angle \(\theta \) are shown in Fig. 1.10. Finally, the mean values for drag coefficient \(\overline{C}_\mathrm{d}\), base pressure coefficient \(\overline{C}_\mathrm{pb}\), separation angle \(\overline{\theta }_\mathrm{s}\), polar locations of the minimum surface pressure \(\overline{\theta }_\mathrm{p,\text {min}}\) and of the maximum skin friction \(\overline{\theta }_{\tau ,\text {max}}\) are reported in Table 1.1 and shows good agreement with the literature values.

Fig. 1.9
figure 9

Reprinted from Liska and Colonius (2017) with permission

Vortex cores in the wake of a sphere at \(\mathrm{Re} = 3700\) are illustrated by isosurfaces of constant Q-value. Depicted are isosurface of \(QD^2/U^2 = 2\) colored by radial distance from the centerline of the sphere in the streamwise direction. The mesh is a cross-sectional cut of the block-wise adaptive computational domain that have been coarsened by a factor of two in each direction for visualization purposes.

Fig. 1.10
figure 10

Reprinted from Liska and Colonius (2017) with permission

Comparison of the time-averaged pressure (left) and skin friction (right) coefficients as functions of the polar angle, \(\theta \), for a sphere at \(\mathrm{Re}= 3700\). Results are compared to values reported by Rodriguez et al. (2011) (DNS at Re = 3700), Kim and Durbin (1988) (exp. at Re = 4200), and Seidl et al. (1997) (DNS at Re = 5000).

Table 1.1 Turbulent flow past sphere at \(\mathrm{Re}=3700\) and the comparison of the mean values for drag coefficient \(\overline{C}_\mathrm{d}\), base pressure coefficient \(\overline{C}_\mathrm{pb}\), separation angle \(\overline{\theta }_\mathrm{s}\), polar locations of the minimum surface pressure \(\overline{\theta }_{p,\text {min}}\) and of the maximum skin friction \(\overline{\theta }_{\tau ,\text {max}}\) with literature values

3.4.2 Flow Past an Inclined, Rotating, Circular Disk

As an outlook, this setup can easily be extended to rotating disks by prescribing appropriate boundary velocities for the Lagrangian IB points. Such studies are of interest for developing novel designs of unmanned air vehicles or alike. While spheres and disks have both been studied extensively in literature, significant discrepancies between numerical and experimental measurements for disks and flat cylinders of large aspect ratio have fueled recent interest in further numerical investigations and thus makes it a good benchmark for the IBLGF (Gao et al. 2018; Tian et al. 2017; Chrust et al. 2015). In addition, an extension to rotating disks (e.g., Frisbees) will be presented. The rotating disk has been suggested as a configuration for a micro-air vehicle based on the stabilizing influence of rotation on the flight dynamics (Potts and Crowther 2001, 2002; Lorenz 2007).

The Reynolds number is defined as \( {\text {Re}}=\frac{U_\infty D \sin (\alpha )}{ \nu }\), where \(U_\infty \) is the free-stream velocity, \(\alpha \) is the angle of attack, and D is the disk diameter, which is set to unity. The Strouhal number is defined by \({\mathrm{St}} = \frac{f D \sin (\alpha )}{ U_\infty }\), where f is the frequency of the primary vortex shedding.

Fig. 1.11
figure 11

Drag and lift coefficient for various angles of attack \(\alpha \) at \(\mathrm{Re}=500\)

Mean drag and lift coefficients for various angles of attack and a fixed Reynolds number of \({\mathrm{Re}}=500\) are compared to the numerical simulations of Tian et al. (2017) in Fig. 1.11. The grid spacing was chosen to be \(\Delta x = 0.012\) and the time step is set to \(\Delta t =0.004\). The adaptivity threshold for the grid was set to \(\epsilon =5\times 10^{-4}\) unless stated otherwise. For simulations at lower Reynolds numbers the grid spacing is chosen based on the estimated scaling of the boundary layer. With an expected \(\mathrm{Re}^{-\frac{1}{2}}\) scaling of the laminar boundary layer thickness, the value of \((\Delta x)\mathrm{Re}^{\frac{1}{2}}\) is kept approximately constant as in Liska and Colonius (2017). The CFL number based on the maximum point-wise velocity is kept below 0.5 by setting \(\Delta t / \Delta x =1/3\). While in Tian et al. (2017) the disk was modeled to have a thickness of 0.002D, the IBLGF simulations assume an infinitely thin disk, which is in turn regularized on the grid scale via the discrete delta function. Mean quantities are averaged over at least 170 convective time units for unsteady solutions (\(\alpha \ge 25^\circ )\) and 130 units for steady solutions (\(\alpha \le 20^\circ \)). Good agreement between both numerical simulations validates the IBLGF. Exemplary, in Fig. 1.13 the vorticity isosurfaces for \(\omega _x\) along with a slice of the computational mesh are shown for angles of attack of \(\alpha =20^\circ \) and \(\alpha =70^\circ \), respectively. Note the disjoint computational mesh for \(\alpha =70^\circ \), which reduces the computational cost significantly compared to a uniform solver (Fig. 1.12).

Fig. 1.12
figure 12

Critical Reynolds number \(\mathrm{Re}_c\) and critical Strouhal number \(\mathrm{St}_c\) for various angles of attack \(\alpha \)

Fig. 1.13
figure 13

Isosurfaces of streamwise vorticity \(\omega _x\) for flow over an infinitely thin disk at \(\mathrm{Re} = 500\), \(\lambda = 0\). The grid of blocks is shown on the spanwise xy-plane through the centerline of the disk. Each block consists of \(10\times 10\times 10\) cells. Adaptive threshold is set to \(\epsilon = 5\times 10^{-5}\)

In addition, the simulations are validated by comparison of the critical Reynolds number and Strouhal number as the flow transitions from a steady state regime to a periodic state through a supercritical Hopf bifurcation with increasing Reynolds number and fixed angle of attack. In Fig. 1.12, the threshold of the Hopf instability as a function of angle of attack is plotted in terms of critical Reynolds and Strouhal number. The critical values for both Reynolds and Strouhal number are obtained by extrapolating from unsteady cases run near the critical point as done in Ghaddar et al. (1986), Pereira and Sousa (1993). As apparent from the plot, the critical values agree well with the numerical simulations of Gao et al. (2018), Chrust et al. (2015). Note that while (Chrust et al. 2015) modeled an infinitely thin disk, the simulations reported in Gao et al. (2018) modeled the disk to have a thickness of 0.02D. A snapshot of a rotating disk with a tip-speed ratio of \(\lambda =3\) is shown in Fig. 1.14 as an outlook of future studies.

Fig. 1.14
figure 14

Isosurfaces of vorticity for flow over an infinitely thin disk at \(\mathrm{Re} = 500\), an angle of attack \(\alpha = 0\) and rotating at a tip-speed ratio of \(\lambda = 3\). See also caption of Fig. 1.13

3.5 Toward AMR

Note that while in the IBLGF the grid is adaptive, the resolution is uniform, which can become limiting in many applications. In fact, while uniform Cartesian meshes can significantly decrease the cost per degree of freedom (DoF), the total number of DoF can be prohibitive for strongly anisotropic or inhomogeneous problems with localized source regions. This issue is particularly prominent for, e.g., high Reynolds number flows or problems where the range of scales is large. A particularly acute challenge is for bluff bodies where one must resolve thin attached laminar or turbulent boundary layers at the same time as a broad wake. Here, adaptive mesh refinement methods (AMR), pioneered by Berger and Colella (1989), Berger and Oliger (1984) can be crucial. These methods adapt the local density of the computational elements to the local spatial resolution requirements. In the context of the IB method, AMR techniques have been embedded (Roma et al. 1999; Griffith et al. 2007; Vanella et al. 2014) and have shown to greatly reduce the computational costs of simulations. In addition, block-wise AMR has become popular compared to cell-wise refinement (see Dubey et al. 2014 for a survey of popular block-structured mesh refinement packages), since the overhead of the underlying data structure and load balancing has shown to be significantly more efficient (Nissen et al. 2013; Dreher and Grauer 2005).

While the FLGF method discussed above is adaptive and utilizes a hierarchical block-structured grid for the FMM solution, it is not an AMR technique. A natural extension of the FLGF is thus to a block-structured AMR solver without additional overhead of the underlying data structure. Note, however, that when refining the physical domain by embedding locally refined grid patches within the computational domain, the free-space boundary conditions implied by the lattice Green’s functions become problematic since the refinement patches itself do have a well defined boundary condition, which is imposed by the surrounding domain and is not the free space. A remedy was found in Dorschner et al. (2020), by projecting the source field onto each level within its support by appropriate coarsening and interpolation operators and subsequent application of the FLGF method on each level independently. The resulting multi-resolution scheme retains linear computational complexity and second-order accuracy and additional allows for arbitrary block-wise refinement by factors of two. An exemplary mesh topology of the multi-resolution scheme is shown in Fig. 1.15 for a thin vortex ring.

Fig. 1.15
figure 15

Mesh topology and vorticity field for a thin vortex ring and the numerical solution of the streamfunction for five levels of refinement

While in Dorschner et al. (2020) the groundwork toward a multi-resolution IBLGF solver was laid, its incorporation into the full IBLGF solver is ongoing work.

4 Summary and Future Directions

In this chapter, we have summarized a projection approach to the IB method that exploits features of the underlying, uniform Cartesian mesh to achieve robust, efficient solution of incompressible external flow problems. Extensions for fully coupled FSI for thin elastic structures, and a novel fast lattice Green’s function for 3D problems were highlighted. Examples problems such as inverted flag flutter, and flow past a sphere and rotating disks were presented to demonstrate the capabilities of the numerics for complex flow problems.

The IBPM takes advantages of formulating the continuity and no-slip boundary conditions as Lagrange multipliers to enforce these constraints to prescribed precision without the need of an artificial constitute relation. This formulation removes any additional constraints on the CFL number for rigid bodies, which is then only limited by the choice of the time-stepping algorithm. Through carefully chosen discrete operators, a modified Poisson equation arises, which is symmetric and positive definite and thus amenable to efficient numerical solvers such as conjugate-gradient method. In addition, we reviewed appropriate filtering techniques to accurately compute surfaces stresses and forces, which allowed the extension to strongly coupled fluid interaction for thin elastic structures. The simplicity of the IBPM formulation proves useful in finding (potentially unstable) steady equilibrium solutions of coupled FSI problems, as well as solving associated global linear stability problems. This capability was demonstrated on an inverted elastic flag setup.

When combined with a lattice Green’s function approach, the IB method can be used for three-dimensional external flows while, at the same time, minimizing the computational expense by restricting the computational domain to a snug region near the immersed surface in which the vorticity is nonzero. The method naturally incorporates exact free-space boundary conditions. By using a viscous integrating factor half-explicit Runge–Kutta scheme in combination with the approximation-free nested projection technique and exploiting mimetic properties of the discrete operators, the projection steps reduce to simple discrete elliptic problems, which can be solved efficiently with the FLGF method. The FLGF method is based on a kernel-independent interpolation-based fast multipole method and therefore exhibits linear computational complexity, while taking advantage of a block-structured Cartesian mesh by using standard FFT routines for fast convolutions.

While the combined IBLGF approach has been demonstrated in benchmarks such as the turbulent flow past a sphere or flow past an inclined rotating disk, its extension to higher Reynolds numbers requires further developments. While it is true that uniform grids in general allow us to use efficient numerical solvers, the number of degrees of freedom becomes prohibitive for the large range of scales in high Reynolds number flows. Thus, future efforts are directed toward a multi-resolution IBLGF scheme. A block-structured multi-resolution algorithm based on LGFs for elliptic difference equations, which retains favorable computational complexity and necessary regularity has been detailed in Dorschner et al. (2020). Incorporation in the IBLGF will be reported in future contributions. Such multi-resolution scheme will not only open the door for high Reynolds number direct numerical simulations but also inclusion of explicit turbulence models such as wall-resolved or wall-modeled large-eddy simulations (LES). In the context of IB, this has been successfully implemented in Piomelli and Balaras (2002), Iaccarino and Verzicco (2003), Yang and Balaras (2006), You et al. (2007), Catchirayer et al. (2018) (and references therein) and therefore provides a promising path toward high Reynolds numbers and applications with engineering relevant complexity. In addition, by using Krylov solvers such as GMRES, BIGSTAB, and their flexible extensions (Saad 1993; Chen et al. 2016) to solve the force Schur complement, the IBLGF scheme can be extended to a fully coupled three-dimensional fluid–structure solver. This would retain the benefits of IBLGF in terms of accuracy, scalability, and efficiency due to truncated computational domain, while increasing the range of applications significantly.