A unified mathematical framework and an adaptive numerical method for fluid-structure interaction with rigid, deforming, and elastic bodies Amneet Pal Singh Bhalla Department of Mechanical Engineering, Northwestern University, 2145 Sheridan Road, Evanston, Illinois 60208, USA Rahul Bale Department of Mechanical Engineering, Northwestern University, 2145 Sheridan Road, Evanston, Illinois 60208, USA Boyce E. Griffith Leon H. Charney Division of Cardiology, Department of Medicine, New York University School of Medicine, 550 First Avenue, New York, New York 10016, USA Neelesh A. Patankar Department of Mechanical Engineering, Northwestern University, 2145 Sheridan Road, Evanston, Illinois 60208, USA Abstract Many problems of interest in biological fluid mechanics involve interactions between fluids and solids that require the coupled solution of momentum equations for both the fluid and the solid. In this work, we develop a mathematical framework and an adaptive numerical method for such fluid-structure interaction (FSI) problems in which the structure may be rigid, deforming, or elastic. We employ an immersed boundary (IB) formulation of the problem that permits us to avoid body conforming discretizations and to use fast Cartesian grid solvers. Rigidity and deformational kinematic constraints are imposed using a formulation based on distributed Lagrange multipliers, and a conventional IB method is used to describe the elasticity of the immersed body. We use Cartesian grid adaptive mesh refinement (AMR) to discretize the equations of motion and thereby obtain a solution methodology that efficiently captures thin boundary layers at fluid-solid interfaces as well as flow structures shed from such interfaces. This adaptive methodology is Preprint submitted to Elsevier Science 7 January 2013 validated for several benchmark problems in two and three spatial dimensions. In addition, we use this scheme to simulate free swimming, including the maneuvering of a two-dimensional model eel and a three-dimensional model of the weakly electric black ghost knifefish. Key words: fluid-structure interaction, incompressible Navier-Stokes equations, immersed boundary method, distributed Lagrange multipliers, adaptive mesh refinement, free swimming 1 Introduction Problems involving interactions between fluids and solids lead to coupled systems that require the solution of momentum equations for both the fluid and the solid. Common approaches to such problems include methods that use body-fitted meshes and so-called immersed boundary or immersed body methods. Although body-fitted meshes permit sharp resolution of fluid-solid interfaces, methods that employ such discretizations are expensive because they require frequent remeshing [1, 2]. Such approaches also present significant implementation challenges for immersed structures with complex geometries and can be extremely difficult to incorporate into existing fluid solver implementations. The immersed boundary (IB) method [3] does not suffer from these difficulties. The IB approach to such fluid-structure interaction (FSI) problems specifically avoids the need for body-conforming discretizations by accounting for the effect of the solid on the fluid via an additional body force that is added to the (fluid) momentum equation; the solid then moves according to the velocity field computed by the basic fluid solver. Consequently, it is straightforward to employ an IB approach to FSI within existing incompressible flow solvers. In addition, this approach is equivalent to more standard continuum formulations involving jump conditions at fluid-solid interfaces [4, 5]. A drawback of the conventional IB approach is that it does not sharply resolve fluid-solid interfaces. Instead, such interfaces are regularized over a finite region, and high spatial resolution can be required in the vicinity of such interfaces to resolve fluid boundary layers. The need for such localized regions of high resolution has motivated the development of adaptive IB methods [6–9]. In this work, we develop a mathematical framework and an adaptive numerical method for FSI problems involving rigid, deforming, or elastic structures. For the parts of the bodies with prescribed velocities or deformational kineEmail addresses: [email protected] (Boyce E. Griffith), [email protected] (Neelesh A. Patankar). 2 matics, we use a constraint formulation based upon distributed Lagrange multiplier methods [10–14], whereas a conventional version of the IB method [3] is employed for the elastic parts of the immersed bodies. Our basic numerical scheme is a fractional-step method, in which we first solve the equations of fluid-structure interaction without imposing any constraints on the motion or kinematics other than the constraint of incompressibility. We then determine the motion of the constrained parts of the body, update the positions of those parts of the body, and correct the material velocity field to account for these constrained motions. The resulting algorithm is reminiscent of Chorin’s original projection method for incompressible flow [15]. In practice, the present algorithm requires an unconstrained fluid solve followed by an additional Poisson solve to ensure that the corrected velocity field remains discretely divergence free. Fast solvers are available for both systems of equations, and the overall computational cost is less than two fluid solves per time step. Moreover, as we demonstrate empirically, this approach yields good momentum conservation and thereby permits the stable use of relatively large time step sizes. To reduce the computational expense of this methodology, we discretize the fluid equations via a block-structured adaptive mesh refinement (AMR) approach [16,17], whereby the computational domain is described as a system of nested Cartesian grid levels, and each grid level is comprised of one or more rectangular Cartesian grid patches. This allows us to deploy localized regions of high spatial resolution where they are most needed, such as in the vicinity of fluid-structure interfaces or flow features shed from the immersed body. The locally refined grid is adaptively updated to track such features. Unlike previous adaptive versions of the IB method [6–9], however, the present scheme permits the immersed body to span multiple grid levels, so that different parts of the immersed body may be associated with different levels of spatial resolution. We apply this adaptive numerical framework to a variety of benchmark FSI problems. We also use it to simulate aquatic locomotion. Two versions of the IB method have been previously used to simulate aquatic locomotion. In the first approach, which we refer to as the elastohydrodynamic approach, body motions are driven by models of the elastic properties of the body, models of the muscle activation patterns, and/or models of the neuronal activity and tissue electrophysiology. The elastohydrodynamic approach is important for gaining insight into the relationships between muscle physiology and neuronal activity in active swimming. The earliest work using the elastohydrodynamic approach was done by Fauci and Peskin [18]. High-resolution FSI simulations of lamprey swimming that employ a model of neuromuscular coupling were performed by Tytell et al. [19] using an adaptive version of the IB method [7]. Simulations of jellyfish swimming using the elastohydrodynamic approach have been done by Zhao et al. [20] and by Herschlag and Miller [21]. The second approach, which we refer to as the hydrodynamic approach, bypasses the details of the neuromuscular coupling and the elastic 3 properties of the body and instead uses the observed deformational kinematics to understand the hydrodynamics of the swimming [2, 14, 22–27]. The second approach is suitable for problems in which the aim is to determine swimming velocities or forces generated during swimming. The deformational kinematics data required by the hydrodynamic approach to simulating aquatic locomotion can be obtained from experiments [28–34]. By adopting an adaptive discretization strategy, we are able to perform extremely high resolution two- and three-dimensional simulations of aquatic locomotion. Herein, we employ the hydrodynamic approach to model the free swimming of eels and of the black ghost knifefish. We consider problems involving both straight swimming and also various turns and maneuvers. We also develop a simple prototype swimmer composed of a rigid head and a flexible tail. The time-dependent elastic properties of the tail drive forward swimming. For the case of the model knifefish, the deformational kinematics are based on experimental data, and an initial validation of the model is obtained by comparing the computed swimming speeds to experimental measurements. 2 Mathematical formulation We state the governing equations for a fluid-structure system that occupies a fixed region of physical space U ⊂ Rd for d = 2 or 3. We denote by x ∈ U fixed Cartesian (physical) coordinates with components xi , i = 1, . . . , d. The physical domain is subdivided into two time-dependent subregions: the region occupied by the fluid at time t, which we denote by Uf = Uf (t) ⊆ U, and the region occupied by the immersed body at time t, which we denote by Ub = Ub (t) ⊆ U. The subregions Uf and Ub are taken to be nonoverlapping, and their union is taken to fill U, so that U = Uf (t) ∪ Ub (t) for all t. We further decompose the region occupied by the body as Ub (t) = Uc (t) ∪ Ue (t), in which Uc represents the constrained parts of the body where the motion or deformation of the structure are known a priori, and Ue represents the elastic parts of the body where the elastic properties of the structure is known but the motion or deformation is not prescribed. For simplicity, we take the mass density of the immersed structure to be the same as that of the fluid, and we assume that the elastic parts of the immersed body have the same viscous properties as the fluid. (This second assumption implies that the flexible parts of the body are viscoelastic rather than purely elastic; however, when elastic stresses dominate viscous stresses, as is the case in the present work, this model provides a reasonable approximation to a purely elastic material.) These assumptions on the mass density and viscosity of the fluid-structure system are not essential, however, and extensions of the present mathematical formulation to problems with nonuniform mass densities or viscosities seem feasible and are subjects of current research by us and others [35–38]. 4 Although it is natural to use an Eulerian description of the fluid, it is generally more convenient to use a Lagrangian description of the configuration of the immersed body. To do so, we use a material coordinate system Ωb ⊂ Rd attached to the body, with Ωc ⊆ Ωb denoting the parts of the body where constraints are imposed on the body motion, and with Ωe ⊆ Ωb denoting the flexible parts of the body where the motion or deformation of the body is not predetermined. We denote by s ∈ Ωb material coordinates with components si , i = 1, . . . , d, and we denote by X(s, t) ∈ U the physical position of material point s at time t. The mapping X : (Ωb , t) 7→ U satisfies X(Ωc , t) = Uc (t) and X(Ωe , t) = Ue (t) for all t. To simplify both the mathematical formulation and the numerical scheme, we require that J = det(∂X/∂s) ≡ 1 for all s ∈ Ωc . General curvilinear coordinates may be used within the flexible portion of the structure. Specifically, we neither assume nor require that J ≡ 1 in Ωe . The equations of motion of the coupled fluid-structure system are ! ∂u ρ (x, t) + u(x, t) · ∇u(x, t) = −∇p(x, t) + µ∇2 u(x, t) ∂t + f c (x, t) + f e (x, t), ∇ · u(x, t) = 0, f c (x, t) = f e (x, t) = Z ZΩc Ωe (1) (2) Fc (s, t) δ(x − X(s, t)) ds, (3) Fe (s, t) δ(x − X(s, t)) ds, (4) ∂X (s, t) = U(s, t), ∂t Z U(s, t) = u(x, t) δ(x − X(s, t)) dx. (5) (6) Ub Here, u(x, t) is the Eulerian velocity of the coupled fluid-structure system, p(x, t) is the pressure, ρ is the uniform mass density of the fluid-structure system, µ is the uniform viscosity of the fluid, and δ(x) = Πdi=1 δ(xi ) is the d-dimensional Dirac delta function. Except where otherwise noted, we impose periodic boundary conditions on U, and we initialize the material velocity field as u(x, t)|t=0 ≡ 0. These choices of boundary and initial conditions are made for convenience and are not limitations of the present mathematical formulation, our numerical scheme, or the software implementation of this scheme. In this formulation, two Eulerian body force densities are included in the momentum equation (1). The first of these body forces, f c = f c (x, t), is supported on Uc (t) and acts to enforce the constraints imposed on the parts of the body that have prescribed motion or deformational kinematics. The second, f e = f e (x, t), is supported on Ue (t) and accounts for the elastic forces generated by deformations of the flexible portions of the body. Although f c and f e are 5 Eulerian body force densities, we specify these densities in Lagrangian form, as described below. The definition of δ(x) implies that f e (x, t) and Fe (s, t) are equivalent densities in the sense that Z V f e (x, t) dx = Z X−1 (V,t) Fe (s, t) ds, (7) in which X−1 (V, t) = {s : X(s, t) ∈ V} for any region V ⊆ U. Moreover, it is straightforward to show that f e (x, t) = 1 J(X−1 (x,t),t) Fe (X−1 (x, t), t) for x ∈ Ue , and 0 otherwise. (8) The constraint force densities f c and Fc are likewise equivalent densities; however, because J ≡ 1 in Ωc , f c (x, t) = F −1 c (X (x, t), t) 0 for x ∈ Uc , and otherwise. (9) The definition of the delta function also implies that eqs. (5) and (6) are equivalent to ∂X (s, t) = u(X(s, t), t). (10) ∂t Thus, the no-slip condition is satisfied at fluid-structure interfaces. Within the parts of the body where deformational kinematics are prescribed, the rate of deformation of the coupled fluid-structure system must match the prescribed rate of deformation of the structure. Specifically, letting uk = uk (x, t) denote the prescribed incompressible deformational kinematic velocity within the constrained part of the body, we require that i i 1h 1h ∇u + ∇uT = ∇uk + ∇uTk in Uc . 2 2 (11) Shirgaonkar et al. [14] determined that the Eulerian form of the body force f c (x, t) needed to enforce this constraint in Uc is i 1h ∇λ + ∇λT , 2 λ = λr − 2µuk , fc = ∇ · (12) (13) in which λr is a Lagrange multiplier that enforces the constraint (11). Similar constraint forces can be used to impose internal velocity constraints of the form u = uk in Uc . (14) In the present formulation, we employ an equivalent Lagrangian version of such 6 constraint forces. We remark that in our numerical scheme, we do not explicitly compute the distributed Lagrange multipliers; rather, we directly compute an approximation to Fc and then obtain f c via a discrete approximation to eq. (3). It is convenient to use the Lagrangian description of the body to determine the elastic forces generated by deformations of the flexible portions of the structure. In general, given an elastic energy functional Ee : X(·, t) 7→ R, the corresponding Lagrangian elastic force density Fe (s, t) can be determined from the Fréchet or total derivative of Ee [3]. For the present work, it is sufficient to assume that the flexible parts of the body are composed of collections of elastic fibers that resist extension, compression, and possibly bending, and that the curvilinear coordinates are chosen within the flexible parts of the body so that each fixed value of (s1 , s2 ) labels one such fiber and, for a fixed value of (s1 , s2 ), s3 represents the position along the fiber labeled by (s1 , s2 ). (In general, s3 is proportional to arc length, although it need not equal arc length.) In this case, the Lagrangian elastic force density is Fe (s, t) = ∂ ∂4 (T (s)τ̂ (s, t)) − Kb 4 (X(s, t) − Xb (s, t)) , ∂s3 ∂s3 (15) in which T (s) is the fiber tension (i.e., the fiber force per unit cross-sectional area in the material coordinate system, so that T ds1 ds2 has units of force), τ̂ (s, t) = ∂X/∂s3 /|∂X/∂s3 | is the unit tangent vector aligned with the fibers, Kb ≥ 0 is the bending stiffness of the fiber, and Xb (s, t) specifies the curvature of the fiber. Although the fiber tension may be a general nonlinear function of the fiber strain, in this work, we take T = Ks (|∂X/∂s3 | − 1) , (16) in which Ks is the fiber stiffness coefficient. For further details, see Peskin [3] and Griffith et al. [39]. We also remark that it is straightforward within the framework of the IB method to abandon the notion of fibers altogether and to employ general nonlinear constitutive laws that are commonly used within the framework of large-deformation nonlinear elasticity [20, 40–44]. 3 Spatial discretizations and Lagrangian-Eulerian interaction In this work, we approximate the Eulerian equations on a locally refined Cartesian grid, we approximate the Lagrangian equations using a collection of immersed nodes that may be positioned arbitrarily on the domain covered by this Eulerian grid, and we approximate the Lagrangian-Eulerian interaction equations by replacing the singular Dirac delta function kernel with a regularized version of the delta function. This approach enables us to use nonconform- 7 ing discretizations of the fluid and structure. Specifically, we do not constrain the motion of the immersed body to conform to the Eulerian grid. Moreover, although we do adaptively update the locally refined Cartesian grid to ensure that high spatial resolution is deployed near fluid-structure interfaces or flow structures shed from such interfaces, we do not require the Eulerian discretization to conform strictly to the boundary of the immersed body. Throughout this section, we generally describe the case in which d = 3. The discrete approximations employed for the case d = 2 are similar. 3.1 Eulerian discretization We solve the Eulerian equations on a block-structured locally refined Cartesian grid [16, 17]. The locally refined grid is composed of a hierarchy of nested grid levels that are labeled ` = 0, 1, . . . , `max , with ` = 0 denoting the coarsest level in the grid hierarchy and with `max ≥ 0 denoting the finest level. Each level of the hierarchical grid is composed of one or more rectangular Cartesian grid patches. The grid patches that comprise a particular level ` of the grid are required to be nonoverlapping; this requirement greatly simplifies the implementation. The union of the patches on level ` covers a physical region U ` ⊆ U. The patch levels are constructed to satisfy a nesting condition that generally requires U ` to be strictly contained in U `−1 , the physical region covered by the patches that make up level ` − 1. This nesting condition is relaxed in the vicinity of physical boundaries of U, so that high spatial resolution may be employed along parts of ∂U where physical boundary conditions are imposed. The Cartesian grid spacing on each level ` of the locally refined grid is h` , and this grid spacing is related to the grid spacing on level ` − 1 by an integer 1 ` `−1 refinement ratio n`−1 . Moreover, the boundaries of the ref , so that h = n`−1 h ref grid patches on level ` are required to align with the boundaries of the grid cells of level ` − 1, the next coarser level. This property simplifies the construction of composite-grid approximations to the Eulerian spatial differential operators. To approximate the incompressible Navier-Stokes equations on a hierarchical Cartesian grid, we use a staggered-grid discretization detailed by Griffith [9]. Briefly, we determine at the center of each cell face (or, in two spatial dimensions, at the center of each cell edge) approximations to the components of u(x, t), f c (x, t), and f e (x, t) that are normal to that face (or edge), whereas approximations to p(x, t) are determined at the centers of the Cartesian grid cells. More precisely, let integer indices (i, j, k) label the Cartesian grid cells on a particular level ` of the locally refined grid, and let Gc` denote the set of cell-centered Cartesian indices associated with the level ` grid patches. The position of the center of grid cell (i, j, k) ∈ Gc` is x`i,j,k = 8 (i + 12 )h` , (j + 12 )h` , (k + 12 )h` . The centers of the x1 faces of the grid cells on level ` are indicated by the shifted indices (i− 21 , j, k) ∈ Gx` 1 and have spatial positions x`i− 1 ,j,k = ih` , (j + 21 )h` , (k + 21 )h` . Similar notation is used to de2 note the centers of the x2 and x3 faces of the grid cells. With u = (u1 , u2 , u3 ), (u1 )`i− 1 ,j,k (t) approximates u1 (x`i− 1 ,j,k , t) on level `, (u2 )`i,j− 1 ,k (t) approximates 2 2 2 u2 (x`i,j− 1 ,k , t), and (u3 )`i,j,k− 1 (t) approximates u3 (x`i,j,k− 1 , t). Analogous nota2 2 2 tion is used to denote approximations to f c and f e . The approximation on level ` to the pressure at cell center x`i,j,k is denoted by p`i,j,k (t). ` Each level of the hierarchical grid is partitioned into a valid region Uvalid that ` is not covered by any finer grid patches, and an invalid region Uinvalid that is covered by grid patches on finer levels of the grid hierarchy. On level `max , `max `max ` Uvalid = U `max and Uinvalid = ∅, whereas on level ` < `max , Uvalid = U ` \ U `+1 ` `+1 and Uinvalid = U . Composite-grid approximations to Eulerian quantities are defined in terms of only the degrees of freedom located in valid regions of the grid. In invalid regions of coarser levels ` < `max of the grid, Eulerian values are determined by interpolating the overlying fine grid values on level ` + 1. Such composite-grid quantities are indicated by omitting the superscript “`.” Finite-difference approximations to the Eulerian spatial differential operators of the continuous equations are constructed that maintain at least firstorder local accuracy in the vicinity of interfaces in grid resolution (i.e., at so called coarse-fine interfaces). Away from coarse-fine interfaces, the spatial discretization reverts to a second-order accurate staggered-grid discretization. We remark that although the scheme suffers from localized reductions in formal order of accuracy at coarse-fine interfaces, empirical tests demonstrate that the adaptive fluid solver yields essentially second-order pointwise convergence rates for benchmark problems. For details on the composite-grid finite-difference discretization used in this work, see Griffith [9]. 3.2 Lagrangian discretization The Lagrangian equations are approximated on a curvilinear mesh that is free to cut through the background Cartesian grid in an arbitrary manner. We identify (l, m, n) with the nodes of the curvilinear mesh, and we define (possibly nonuniform) curvilinear mesh spacings (∆s1 , ∆s2 , ∆s3 ). We identify the set of all curvilinear mesh nodes as Mb . The mesh nodes associated with the constrained parts of the body are denoted Mc , and the mesh nodes associated with the elastic parts of the body are denoted Me . Explicit mesh connectivity information is needed and maintained only for those nodes in Me . The Lagrangian constraint force is specified in a manner determined by the time step-splitting scheme employed in this work; see Secs. 4.1–4.4. To 9 compute an approximation to the Lagrangian elastic force density for the case in which Kb = 0, we introduce a finite-difference operator in the s3 curvilinear coordinate direction defined by (Ds3 Φ)l,m,n+ 1 = 2 Φl,m,n+1 − Φl,m,n , ∆s3 (17) in which Φl,m,n ≈ Φ(l∆s1 , m∆s2 , n∆s3 ) is an arbitrary quantity defined on the curvilinear mesh. We approximate the fiber tension and unit fiber tangent vector at “half-integer” values of s via Tl,m,n+ 1 = Ks (Ds X)l,m,n+ 1 − 1 , 2 (18) 2 (Ds X)l,m,n+ 1 2 . (Ds X)l,m,n+ 1 τ̂ l,m,n+ 1 = 2 (19) 2 Using these values, we compute an approximation to Fe on the nodes of the curvilinear mesh via (Fe )l,m,n = (Ds (T τ̂ ))l,m,n (20) Notice that (Fe )l,m,n is defined entirely in terms of Xl,m,n and Ks . We remark that this discretization is equivalent to describing the elasticity of the flexible parts of the body in terms of systems of Hookean springs with nonzero resting lengths. Bending-resistant forces present for the case Kb > 0 are similarly ∂4 approximated by a compact finite-difference discretization of ∂s 4. 3 3.3 Lagrangian-Eulerian interaction In our approximation to the Lagrangian-Eulerian coupling operators, we use a regularized version of the d-dimensional delta function thatis of the tensor product form δh (x) = Πdi=1 δh (xi ), in which δh (xi ) = h1 ϕ xhi is a onedimensional regularized delta function. We define δh (x) in terms of the fourpoint function ϕ(r) of Peskin [3], which is given by ϕ(r) = q 1 2 , 3 − 2|r| + 1 + 4|r| − 4r 8 q 1 8 0, 5 − 2|r| − 0 ≤ |r| < 1, −7 + 12|r| − 4r2 , 1 ≤ |r| < 2, (21) 2 ≤ |r|. To simplify the development of approximations to the Lagrangian-Eulerian coupling operators, we assume that the immersed body can be decomposed into regions Ω`b that are each completely embedded within a particular level ` of the hierarchical grid. The curvilinear mesh nodes located within Ω`b are identified by M`b . Given a Lagrangian force density F` = (F1` , F2` , F3` ) defined on the nodes of M`b , we construct the corresponding Eulerian force density 10 f ` = (f1` , f2` , f3` ) on level ` of the Cartesian grid via (f1 )`i− 1 ,j,k = 2 X (F1 )`l,m,n δh` (x`i− 1 ,j,k − X`l,m,n ) ∆s`1 ∆s`2 ∆s`3 , (22) (F2 )`l,m,n δh` (x`i,j− 1 ,k − X`l,m,n ) ∆s`1 ∆s`2 ∆s`3 , (23) (F3 )`l,m,n δh` (x`i,j,k− 1 − X`l,m,n ) ∆s`1 ∆s`2 ∆s`3 , (24) 2 (l,m,n)∈M`b (f2 )`i,j− 1 ,k = 2 X 2 (l,m,n)∈M`b (f3 )`i,j,k− 1 = 2 X 2 (l,m,n)∈M`b all for level ` grid cell faces in Gx` 1 , Gx` 2 , and Gx` 3 , respectively. We denote this discrete Lagrangian-to-Eulerian operator using the shorthand f ` = S ` [X` ] F` . Likewise, if u` = (u`1 , u`2 , u`3 ) is a vector field defined on level ` of the Cartesian grid, then its restriction U` = (U1` , U2` , U3` ) to the nodes of M`b is determined by (U1 )`l,m,n = 2 (i− 12 ,j,k)∈Gx` 1 (U2 )`l,m,n = 3 3 2 3 (25) , (26) , (27) 2 (u3 )`i,j,k− 1 δh` (x`i,j,k− 1 − X`l,m,n ) h` X , 2 (u2 )`i,j− 1 ,k δh` (x`i,j− 1 ,k − X`l,m,n ) h` X (i,j− 21 ,k)∈Gx` 2 (U3 )`l,m,n = (u1 )`i− 1 ,j,k δh` (x`i− 1 ,j,k − X`l,m,n ) h` X 2 (i,j,k− 21 )∈Gx` 3 2 for all (l, m, n) ∈ M`b . We denote this discrete Eulerian-to-Lagrangian coupling operator using the shorthand U` = R` [X` ] u` . Notice that R` [X` ] and S ` [X` ] are adjoint operators, which implies that the single-level coupling scheme conserves energy during Lagrangian-Eulerian interaction [3]. Using the single-level force-spreading and velocity-restriction operators, S ` and R` , we can construct composite-grid spreading and restriction operators for quantities defined over the entire Cartesian grid hierarchy. Let I``+1 denote an interpolation operator that refines Eulerian quantities defined on level ` of the hierarchical grid onto level `+1. We recursively construct a composite-grid force-spreading operator via {S[X] F}0 = S 0 [X0 ] F0 , ` ` ` ` {S[X] F} = S [X ] F + (28) ` I`−1 {S[X] F} `−1 for 0 < ` ≤ `max , (29) in which {S[X] F}` denotes the value of f = S[X] F on level ` of the grid ` hierarchy. Letting C`+1 denote an interpolation operator that coarsens Eulerian quantities defined on level ` + 1 onto the overlying invalid region of level `, we 11 construct a corresponding composite-grid velocity-restriction operator via ` ` u` = C`+1 u`+1 in Uinvalid for 0 ≤ ` < `max , ` ` ` ` {R[X] u} = R [X ] u , (30) (31) in which {R[X] u}` denotes the value of U = R[X] u associated with level ` of the grid hierarchy. Notice that eq. (30) is an explicit statement of the ` requirement that the values of u in Uinvalid are defined in terms of the overlying fine grid values on level ` + 1. Generally, R[X] 6= S[X]∗ unless the refining and coarsening operators are discretely adjoint. In the present work, we use a slope-limited conservative refine operator and a conservative coarsen operator, and these operators are not discretely adjoint. However, in the special case in which the immersed body is entirely represented on level `max , R[X] = S[X]∗ because R`max [X`max ] = S `max [X`max ]∗ . 4 Solution methodology Our basic strategy for solving the coupled system of equations is first to solve the equations of motion without accounting for the constraints associated with any prescribed motions or deformations of the immersed body. We then enforce these constraints directly and solve an auxiliary system of equations to ensure that the composite material velocity field is discretely divergence free. Because of this time step splitting, the overall scheme is only first-order accurate in time. The spatial discretization is also generally only first-order accurate, although it attains second order accuracy for certain sufficiently smooth problems [7, 45]. We first present the basic time stepping scheme, which is independent of the particular type of constraints that are imposed on the motion. We then detail three different numerical approaches to imposing different types of constraints on the motion. 4.1 Basic time stepping scheme We use truncated fixed-point iteration to discretize the equations of motion in 1 time. Let Xn+1,k , un+1,k , and pn+ 2 ,k denote approximations to the values of X 1 and u at time tn+1 and to the value of p at time tn+ 2 obtained after k cycles of fixed point iteration. (Wherever “n” appears as a superscript, it always refers to a time step number; wherever “n” appears as a subscript, it always is the index of a curvilinear mesh node. Likewise, superscript “k” always indicates n+1,k 1 a cycle number.) Additionally, let X̃ , ũn+1,k , and p̃n+ 2 ,k denote the ap- 12 proximations to X, u, and p obtained before imposing the constraints on the motion or deformation of the immersed body. At the beginning of the time 1 1 1 n+1,0 step, = Xn , un+1,0= un , and pn+ 2 ,0 = pn− 2 . Define Xn+ 2 ,k = we set X 1 1 Xn+1,k + Xn and un+ 2 ,k = 21 un+1,k + un as time step-centered approx2 1 imations to X and u, respectively, and let ũn+ 2 ,k = 12 ũn+1,k + un . We use a dynamically chosen time step size ∆t that satisfies the convective CFL condition ku` k∞ ∆t ≤ Ch` (32) on each level of the grid hierarchy, in which C is the so-called convective CFL number. Except where otherwise noted, all numerical examples use two cycles of truncated fixed-point iteration per time step and determine ∆t by setting C = 0.3. We begin by solving the equations of motion without imposing constraints related to the imposed motion or deformational kinematics of the immersed body, although we do impose the constraint of incompressibility on the composite material velocity field. The linear terms in the incompressible NavierStokes equation are treated implicitly whereas all other terms are treated explicitly, so that 1 1 1 ũn+1,k+1 − un ρ + An+ 2 ,k = −∇h p̃n+ 2 ,k+1 + µ∇2h ũn+ 2 ,k+1 ∆t ! 1 1 + S[Xn+ 2 ,k ] Fe [Xn+ 2 ,k ], n+1,k+1 ∇h · ũ n+1,k+1 X̃ ∆t 1 − Xn = 0, 1 1 = R[Xn+ 2 ,k ] ũn+ 2 ,k+1 , (33) (34) (35) 1 in which An+ 2 ,k ≈ [u · ∇u]n+ 2 ,k is an explicit approximation to the advection term that uses the xsPPM7 version [46] of the piecewise-parabolic method (PPM) [47]. We solve these equations using the flexible GMRES (FGMRES) algorithm [48] preconditioned by a version of the projection method [49]. In general, ũn+1,k will not satisfy the constraints on the deformation or body motion within Uc . To correct ũn+1,k+1 in Uc , we compute an approximation to the constrained Lagrangian body velocity field Un+1,k+1 , and we correct the b configuration of the immersed structure to obtain Xn+1,k+1 . Ub and X are determined in different ways for different types of constraints; the particular choices considered herein are detailed in Secs. 4.2–4.4. Having determined Ub and X, we compute the difference between the Lagrangian body velocity field and the interpolation of the unconstrained Eulerian velocity to the Lagrangian 13 mesh via n+1,k+1 (∆Uc )l,m,n = (Ub )n+1,k+1 l,m,n − R[Xn+1,k ] ũn+1,k+1 l,m,n for (l, m, n) ∈ Mc , for (l, m, n) ∈ Me , (36) so that the Lagrangian constraint force Fc that ensures that the background fluid velocity approximately matches that of the constrained parts of the immersed solid is ρ ∆Un+1,k+1 . (37) Fn+1,k+1 = c c ∆t Notice that (Fc )n+1,k+1 = 0 for (l, m, n) ∈ Me . The Eulerian velocity field is l,m,n then corrected by solving 0 1 un+1,k+1 − ũn+1,k+1 ρ = −∇h ∆pn+ 2 ,k+1 + S[Xn+1,k ] Fcn+1,k+1 , ∆t ∇h · un+1,k+1 = 0. (38) (39) 1 A first-order accurate approximation to the pressure at time tn+ 2 may be 1 1 1 computed as pn+ 2 ,k+1 = p̃n+ 2 ,k+1 + ∆pn+ 2 ,k+1 ; however, the computed value 1 of pn+ 2 has no effect on the dynamics, and in practice, we generally do not evaluate the corrected pressure. We remark that by multiplying eq. (38) by is equivalent to un+1,k+1 = ũn+1,k+1 − ∆t , ρ it is easy to see that eq. (38) 1 ∆t ∇h ∆pn+ 2 ,k+1 + S[Xn+1,k ] ∆Un+1,k+1 . c ρ (40) The quantity S[Xn+1,k ] ∆Un+1,k+1 is a discrete approximation to the continc uous quantity (∆uc ) (x, t) = Z (∆Uc ) (s, t) δ(x − X(s, t)) ds Ωc (∆U = 0 −1 c ) (X (x, t), t) for x ∈ Uc , otherwise, (41) (42) in which the second equality holds because J = det(∂X/∂s) ≡ 1 in Ωc . Thus, the Eulerian constraint force approximately imposes the desired motion within the constrained parts of the Eulerian domain. We also remark that we have found that it is not always necessary to impose ∇h · un+1,k+1 = 0 to obtain accurate results using the present scheme. When it is possible to avoid imposing this condition, the Eulerian velocity may be corrected by simply evaluating un+1,k+1 = ũn+1,k+1 + S[Xn+1,k ] ∆Un+1,k+1 . c 14 (43) We provide empirical tests to demonstrate the performance of the method with and without including the final divergence-free projection in Sec. 7.1.3. 4.2 Prescribed motion For problems in which the motion of the body is prescribed, we assume either that the Lagrangian velocity of the body Ub is specified as an explicit function of time, or that the linear and angular velocities of the center of mass of a rigid body, Ur and Wr , are explicit functions of time. When we are given Ur and Wr but not Ub , we compute Ub via (Ub )l,m,n = U r + Wr × Rl,m,n 0 for (l, m, n) ∈ Mc , for (l, m, n) ∈ Me , (44) in which Rl,m,n is the radius vector from the center of mass of the body to the physical position Xl,m,n of curvilinear mesh node (l, m, n). In either case, we correct the positions of the constrained parts of the body via Xn+1,k+1 l,m,n 4.3 = n+ 12 ,k+1 l,m,n + ∆tUb X̃n+1,k+1 l,m,n Xn for (l, m, n) ∈ Mc , (45) for (l, m, n) ∈ Me . Prescribed deformation velocity The deformational kinematics of the immersed body can be specified in terms of a Lagrangian deformational velocity field Uk , which is required to be an explicit function of time. In this case, we determine the projected linear and angular velocities of the body, Up and Wp , by solving Mc Upn+1,k+1 = X X ρ n o` ] ũn+1,k+1 l,m,n n+1,k R[X ` (l,m,n)∈M`c − (Uk )n+1 l,m,n ∆s`1 ∆s`2 ∆s`3 , (46) Ic Wn+1,k+1 = p X X ρ Rn+1,k l,m,n × n R[Xn+1,k ] ũn+1,k+1 o` ` (l,m,n)∈M`c l,m,n ` ` ` − (Uk )n+1 l,m,n ∆s1 ∆s2 ∆s3 , (47) in which Mc is the mass of the constrained part of the body, Mc = X X ` (l,m,n)∈M`c 15 ρ ∆s`1 ∆s`2 ∆s`3 , (48) and Ic is the inertia tensor of the constrained part of the body, Ic = X ρ (Rl,m,n · Rl,m,n I − Rl,m,n ⊗ Rl,m,n ) ∆s`1 ∆s`2 ∆s`3 , X (49) ` (l,m,n)∈M`c in which I is the d-dimensional identity tensor. Recall that the immersed body is assumed to be neutrally buoyant in the fluid, and that Rl,m,n is the radius vector from the center of mass of the body to the position Xl,m,n of curvilinear mesh node (l, m, n). Notice that eq. (46) is the discrete statement of conservation of linear momentum in the constrained parts of the body, and that eq. (47) is the statement of conservation of angular momentum. n+ 12 ,k+1 , we define Up and Wn+1,k+1 Having determined Un+1,k+1 p p n+ 1 ,k+1 = 1 2 Un+1,k+1 p + Unp and Wp 2 + Wnp , and we determine the La= 12 Wn+1,k+1 p grangian body velocity field as n+ 12 ,k+1 (Ub )l,m,n 1 Un+ 2 ,k+1 p = n+ 21 ,k+1 + Wp n+ 1 n+1,k 2 × Rl,m,n + (Uk )l,m,n for (l, m, n) ∈ Mc , for (l, m, n) ∈ Me . (50) 0 Un+1,k+1 is determined similarly. We then compute b Xn+1,k+1 l,m,n = n+ 12 ,k+1 l,m,n + ∆tUb X̃n+1,k+1 l,m,n Xn for (l, m, n) ∈ Mc , for (l, m, n) ∈ Me , (51) as was done in the case of prescribed motion. We remark that during free swimming, no external forces should be applied to the body, and the prescribed deformational velocity field Uk should not have any net translational or rotational velocity, i.e, (Uk )l,m,n ∆s`1 ∆s`2 ∆s`3 = 0, (52) Rl,m,n × (Uk )l,m,n ∆s`1 ∆s`2 ∆s`3 = 0. (53) X X ` (l,m,n)∈M`c X X ` (l,m,n)∈M`c In this case, eqs. (46) and (47) simplify to Mc Upn+1,k+1 = X X n ρ R[Xn+1,k ] ũn+1,k+1 ` (l,m,n)∈M`c Ic Wn+1,k+1 = p X X ` (l,m,n)∈M`c n o` l,m,n ∆s`1 ∆s`2 ∆s`3 , n+1,k ρ Rn+1,k ] ũn+1,k+1 l,m,n × R[X o` l,m,n (54) ∆s`1 ∆s`2 ∆s`3 , (55) so that Up and Wp are both the net linear and angular velocities of the uncorrected Eulerian velocity field and also the translational and rotational 16 velocities of the center of mass of the body in the Eulerian frame, which we denote by Ur and Wr , respectively. When the deformational kinematics of swimming are determined from experimental measurements, Uk does not generally satisfy eqs. (52) and (53). The present formulation ensures that no external forces are applied to the body in this case; however, if Uk does have a net translational or rotational velocity, then Up and Wp are not the translational or rotational velocities of the center of mass of the body. Instead, the rigid translational and rotational velocities of the center of mass of the body are Ur = Up + Up,k , Wr = Wp + Wp,k , (56) (57) in which Up,k and Wp,k are the net translational and rotational velocities of Uk . Notice that by construction, X ρ (Ub )l,m,n ∆s`1 ∆s`2 ∆s`3 = Mc Ur , (58) ρ Rl,m,n × (Ub )l,m,n ∆s`1 ∆s`2 ∆s`3 = Ic Wr , (59) X ` (l,m,n)∈M`c X X ` (l,m,n)∈M`c i.e., the net linear and rotational velocities of Ub are the translational and rotational velocities of the center of mass of the body. 4.4 Prescribed shape In some applications, the time-dependent shape of the immersed body may be prescribed as a shape mapping χ = χ(s, t), in which χ(s, t) is the prescribed position of material point s at time t. In such cases, the deformational veloc∂ ity field can be obtained as Uk = ∂t χ. This velocity field may be determined analytically when an explicit formula is available for χ(s, t). When only experimental measurements are available for χ, however, it is necessary to employ an alternative approach, such as finite differencing, to obtain an approximation to Uk . Moreover, if χ is obtained from experimental data and Uk is determined by differencing these data, updating the position of the body in the manner described in Sec. 4.3 can result in significant, unrealistic distortions in the computed body shape. A further complication is that the experimentally determined shape and the corresponding deformational velocity field will generally have net translational or rotational motion, and such motions should not be imposed on the body. To obtain deformations of the immersed body that exactly match the prescribed shape, we alter the procedure used to update the configuration of the immersed body. This update procedure accounts for any net linear or rotational motion in the deformation χ and ensures that 17 such motions are not imposed on the immersed body. Although we specify the shape of the body explicitly, Up , Wp , and Ub are otherwise computed as described in Sec. 4.3. The configuration of the body at time step n may be obtained as a translation and rotation of the prescribed shape at time tn . To determine the body configuration in this manner, we associate with the body two additional quantities, X̄ = X̄(t), the position of the center of mass of the body at time t, and θ̄ X = θ̄ X (t), a director vector that tracks the orientation of the body. X̄ moves with the center of mass of the body, so that n+1 X̄ n − X̄ n+ 1 = Ur 2 , ∆t (60) and θ̄ X rotates with the center of mass of the body, so that n+1 n θ̄ X − θ̄ X n+ 1 = Wr 2 . ∆t (61) We compute from θ̄ X a rotation matrix T = T [θ̄ X ] such that T [θ̄ X (t)] = I. t=0 We additionally associate with the shape mapping χ a director vector θ̄ χ , so that if Uk is the deformational kinematic velocity associated with χ, and if Wχ is the mean rotational velocity associated with Uk , then n+1 θ̄ χ n − θ̄ χ n+ 1 = Wχ 2 . ∆t (62) The positions of the material points are then updated by Xn+1,k+1 l,m,n = X̄n+1,k+1 + T [θ̄ X ] T [θ̄ χ ]−1 (χn+1 − χ̄n+1 ) for (l, m, n) ∈ Mc , X̃n+1,k+1 for (l, m, n) ∈ Me , (63) n+1 n+1 l,m,n in which χ̄ is the center of mass of χ. We remark that it is straightforward to adapt the foregoing procedure to produce a filtered shape mapping χfil that does not include net linear or rotational motion. If such a filtered shape mapping is available, the foregoing update may be simplified to Xn+1,k+1 = l,m,n X̄n+1,k+1 n+1 + T [θ̄ X ] (χfil )n+1 − (χ̄fil )n+1 X̃n+1,k+1 l,m,n for (l, m, n) ∈ Mc , for (l, m, n) ∈ Me . (64) The filtered shape mapping can be recovered from the original shape mapping via a preprocessing step. We demonstrate below that our algorithm yields identical results when using either filtered or unfiltered shape mappings. 18 5 Adaptive mesh refinement The locally refined Cartesian grid is constructed using the Berger-Rigoutsos point clustering algorithm [50]. Cells are tagged for refinement on level ` whenever they contain curvilinear mesh nodes associated with level ` or with any finer level of the Cartesian grid, or whenever the magnitude of the fluid vorticity or other quantities of interest exceeds some problem-specific threshold value. The grid hierarchy is regenerated at regular intervals chosen to ensure that the subregions of Ωb associated with each level of the grid hierarchy are unable to “escape” from that level of the grid prior to the next regridding operation. If C is the convective CFL number (see Sec. 4.1), we must regenerate the patch hierarchy at least every b C1 c time steps. Because our numerical scheme requires that C < 1 to remain stable, b C1 c ≥ 1. Each time that we regenerate the grid hierarchy, Eulerian quantities must be transferred from the “old” grid hierarchy to the “new” hierarchy. In newly refined regions of the patch hierarchy, the fluid velocity is interpolated from the old coarse grid using a conservative, discretely divergence- and curl-preserving interpolation scheme [51]. In newly coarsened regions of the patch hierarchy, the fluid velocity is defined as the conservative average of the old fine-grid data. Conservative interpolation and coarsening operators are also used to transfer force densities from the old hierarchy to the new one. The fluid pressure is interpolated using nonconservative linear interpolation. For further details, see Griffith [9]. 6 Software implementation The numerical methods of this work are implemented using the open-source IBAMR software [52], a C++ framework targeted at enabling advanced fluidstructure interaction models that use the IB method. IBAMR is built upon the SAMRAI [53–55], PETSc [56–58], hypre [59,60], and libMesh [61,62] libraries, among others. 7 Numerical examples In this section, we present several examples that test various aspects of the foregoing methods. Throughout this section, we identify (x1 , x2 , x3 ) = (x, y, z) and u = (u1 , u2 , u3 ) = (u, v, w). Most of the examples considered are two 19 (a) (b) Fig. 1. Comparison of numerical and analytical results for Stokes’ first problem. (a) Drag coefficient; and (b) velocity profile at t/T = 10. —: Analytical; •: Numerical. dimensional and serve to test the foregoing methods by matching the numerical solutions to analytical results where available. Computationally intensive three-dimensional cases are considered that use the same software implementation as that used to perform the two-dimensional tests. For cases in which we need to compute the hydrodynamic drag force acting on the body, we do so by evaluating a discrete approximation to F= Z ∂Uc σ · n dA(x) = M Z DUb Z − Fc ds − Fe ds, Dt Ωc Ωe (65) in which σ = −pI + µ(∇h u + ∇h uT ) is the hydrodynamic stress tensor, n is the outward unit normal to the surface of immersed body, and M is the mass of the immersed body. In our computations, the drag force is evaluated in the Lagrangian frame using the right-hand side of eq. (65). We remark that evaluating the hydrodynamic drag in this manner is both inexpensive and straightforward, especially when compared to integrating the hydrodynamic stress tensor over the surface of the immersed body, which is difficult to track in the Eulerian frame. Notice that in cases in which the body moves with constant velocity, the inertial term is zero, and the drag is completely determined by the values of the Lagrangian constraint and elasticity forces. By contrast, if the body is freely swimming, then the integral of constraint forces is zero. Notice also that if the elastic structure is composed entirely of closed fibers, R then Ωe Fe ds = 0. 20 7.1 7.1.1 Prescribed motion Stokes’ first problem Our first example considers Stokes’ first problem, in which an infinitely long horizontal plate is impulsively started with a velocity U0 in the x direction. The exact analytical solution for the transient velocity profile for y ≥ 0 is given by " !# y u(y, t) = U0 erfc √ , (66) 2 νt in which ν = µ/ρ is the kinematic viscosity of the fluid. The drag coefficient is CD = F/ 12 ρU02 A, in which F is the hydrodynamic drag force acting on one surface of the plate and A is the area per unit depth of that surface. CD is given 2 analytically by CD = √πtRe , in which the Reynolds number is Re = U0 L/ν. This problem has been studied numerically by Shirgaonkar et al. [14] and by Taira and Colonius [63]. Here, we set U0 = 1, L = 1, and Re = 500. The time scale is T = L/U0 . The physical domain U is taken to be a periodic region of size 3L×3L. To discretize U, we use a four-level Cartesian grid, with the coarsest level consisting of a uniform 32 × 32 grid, and with refinement ratios n0ref = n1ref = 4 and n2ref = 2, so that the finest level of the hierarchy has a grid spacing equivalent to a uniform 1024 × 1024 grid. The plate is modeled as a line of points placed in the middle of U, and the discretization of the plate uses one material point in per Cartesian grid cell and was kept on the finest grid level to resolve completely the viscous boundary layer. Fig. 1 shows comparisons between our numerical results and the analytic solution. We obtain excellent agreement with the analytical solution to this problem. 7.1.2 Moving plate in an infinite flow As a second example, we consider a finite plate of height b in an infinite quiescent flow that is dragged perpendicular to itself with a constant velocity U0 . The height of the plate is taken to be b = 1, and the plate is dragged with a velocity U0 = 1 in the x direction. The physical domain is taken to be a periodic box with height H = 22b and length L = 32b, which were chosen to minimize boundary effects. In this case, the drag coefficient is CD = F/ 12 ρU02 b, in which F is the hydrodynamic drag force acting on each side of the plate. The value of CD that we determine numerically is compared to the asymptotic solution CD ≈ 2.09 derived by Dennis et al. [64] at Re = U0 b/ν = 20. The time scale of the problem is T = b/U0 . Two sets of simulations are performed: one in which the entire plate is kept 21 (a) (b) Fig. 2. (a) Drag coefficient for a plate moving perpendicular to itself as a function of nondimensionalized time at Re = 20. — (blue): Numerical, plate on single level; ---: Numerical, plate spanning two adjacent grid levels; •: asymptotic value from Dennis et al. [64]. (b) A visualization of the second case considered, in which the upper half of the plate is on the finest grid level, and the lower half is on the next coarser level of the grid hierarchy. on the finest level of the Cartesian grid hierarchy, and one in which half of the plate is kept on the finest level and the other half is kept on the next coarser level of the grid; see Fig. 2(b). For the first case, three grid levels are used, with the coarsest level being a uniform 64 × 64 grid, and with a uniform refinement ratio nref = 4. For the second case, one further grid level is introduced in the grid hierarchy with a refinement ratio of n2ref = 2. This second case is done to validate the method for use with immersed structures that span multiple levels of the Cartesian grid hierarchy. In both cases, the plate is modeled as a one dimensional line of points with one material point in each Cartesian grid cell. Fig. 2 shows the time evolution of drag for the moving plate for the two cases, which are shown to agree well with the asymptotic value derived by Dennis et al. [64]. Previous work has attributed the spurious oscillations observed in the calculated drag coefficient to the IB formulation of the problem [14, 65]. To filter these spurious high frequency oscillations, we report values that have been averaged over four consecutive time steps. 22 Table 1 Comparison of mean drag coefficients and Strouhal numbers for various studies of flow past a rigid circular cylinder at Re = 200. 7.1.3 Study CD St Present 1.3906 0.2000 Present (simplified velocity correction) 1.4001 0.2000 Braza et al. [66] 1.4000 0.2000 Henderson [67] 1.3412 0.1971 He et al. [68] 1.3560 0.1978 Bergmann et al. [27] 1.3500 0.1980 Flow past a rigid cylinder As a next example, we consider the widely used benchmark problem of flow past a rigid circular cylinder. A circular cylinder of diameter D = 1 is placed in a flow with far-field velocity U∞ . In this case, we determine the Reynolds number as Re = kU∞ kD/ν = 200. We set U∞ = (1, 0). The computational domain is taken to be a rectangular channel U = [−8D, 24D] × [−8D, 8D], and the center of the cylinder is placed at (x, y) = (0, 0). The coarsest level of the Eulerian discretization is a uniform 64 × 32 grid, and a uniform refinement ratio nref = 4 is used to construct the finer levels of the patch hierarchy. The aerodynamic drag coefficient, C = F/(ρDkU∞ k2 /2), is calculated numerically. Drag and lift coefficients are defined as CD = C · ex and CL = C · ey , respectively. Fig. 3(a) shows the temporal evolution of CD and CL as functions of time. In the figure, time has been normalized by D/kU∞ k. To remove spurious oscillations in the computed drag and lift forces, we filter the drag and lift coefficients by averaging values over five consecutive time steps. Table 1 compares the mean drag coefficient and Strouhal number computed using the present method at Re = 200 to corresponding values obtained in previous studies. Good agreement is demonstrated between our results and results from these prior investigations. Table 1 also shows that for this problem, including a final divergence-free projection is not required to obtain accurate results for the drag coefficient and Strouhal number; see Sec. 4.1. In particular, notice that essentially identical dynamics, as quantified by St, are recovered both with the final divergence-free projection and also with the simplified velocity correction that omits the final projection. The reason that omitting this projection has a small effect on the computed dynamics is that the flow field is effectively projected in the first solution step of the subsequent time step. Fig. 4 shows ∇ · u for the two cases considered above. As can be seen in Fig. 4(a), the ve- 23 (a) (b) (c) (d) Fig. 3. (a) Drag and lift coefficients for flow past a rigid circular cylinder as a function of time at Re = 200. —: CD ; ---: CL . (b) Spectrum of CL at Re = 200. (c) Vorticity at t = 63. (d) Locally refined mesh capturing the vortex structures shed from the cylinder at t = 63. 24 (a) (b) Fig. 4. (a) ∇ · u at t = 45 when the final divergence-free projection is omitted in each time step. (b) ∇ · u at t = 45 when the final divergence-free projection step is included in each time step. Notice that the maximum value of k∇ · uk is nearly three orders of magnitude lower than in (a); the value of k∇ · uk is determined by the tolerance of the iterative solver used to solve the projection Poisson equation. locity correction step leads to a violation of divergence-free condition mainly near the boundary of the structure. Fig. 4(b) shows that including the final divergence-free projection step corrects the failure of divergence-free condition near the boundary of the immersed structure. 7.1.4 Oscillating rigid cylinder in an infinite flow In the foregoing examples, inertial forces did not contribute to the hydrodynamic drag because the body was moving either at a constant velocity or was 25 Fig. 5. Temporal evolution of the drag coefficient for an oscillating cylinder at Re = 100 and KC = 5. The cylinder is oscillating with a velocity of U∞ cos 2πt T . —: contribution from both the inertial term and the constraint forces; --- constraint forces only; • (red): comparison to Shen et al. [69] and Dutsch et al. [70]; comparison to Shen et al. [69]. kept stationary. In cases in which the body has a nonconstant specified velocity, contributions to the drag forces come from both inertial and constraint forces. In this example, we consider a rigid circular cylinder oscillating about a mean position in a quiescent fluid. This problem has been studied both numerically and experimentally [69, 70]. We consider a cylinder of diameter D = 1 that is oscillating in the x direction with speed Uc = U∞ cos( 2π t), in T which U∞ is the maximum oscillation velocity and taken to equal 1, and T is the period of the oscillation. The computational domain is a periodic region U = [−16, 16] × [−8, 8], which was chosen to minimize the effects of boundary conditions. The center of the cylinder is initially placed at (x, y) = (0, 0). The flow induced by the motion of the oscillating cylinder is governed by two nondimensional parameters, the Keulegan-Carpenter number KC = U∞ T /D, and the Reynolds number Re = U∞ D/ν. For this problem we choose KC = 5 and Re = 100, thereby matching the case studied by Shen et al. [69]. Four grid levels are used, with the coarsest level being a uniform 64 × 32 grid, and with a uniform refinement ratio nref = 4. A fixed time step size ∆t = 0.0015 2 is used. The drag coefficient is CD = Fx /0.5ρU∞ D. Fig. 5 shows the computed drag coefficient and demonstrates that our results are in good agreement with prior results of Dutsch et al. [70] and of Shen et al. [69]. Fig. 5 also shows that contributions from the inertial term should be taken into account when evaluating drag forces; see eq. (65). 26 (a) (b) (c) Fig. 6. (a) Terminal velocity of a sedimenting sphere as a function of fine– grid Cartesian grid spacing h`max for α = 0.3125. • (red): Simulation; —: fit, y = −3.778h + 1.332. (b) Plot of sphere velocity v as a function of time compared with the experimental result of Mordant and Pinton [71]. Here, t95 , is the time it takes for the sphere to reach 95% of its terminal velocity. The fine-grid Cartesian grid spacing is h`max = 0.025. —: Simulation; --- (red): experimental fit of Mordant and Pinton [71]. (c) Contour of magnitude of vorticity at t = 4.8 s when the sphere has reached terminal velocity. Also shown are the grid patch levels. Darker shades represent finer patch levels. 7.2 7.2.1 Rigid-body motion Falling sphere We validate our algorithm for a freely moving body by considering the problem of a sedimenting sphere. To treat this problem with our present formulation 27 and implementation, which assume that the mass density of the fluid-structure system is uniform, we impose a gravitational body force that is present only in the solid region Uc of the physical domain U. We consider a sphere of diameter D = 0.625 m in a domain U = [−1 m, 1 m] × [−7 m, 1 m] × [−1 m, 1 m], so that the edge length L of the square cross section of the channel is 2 m and the height H of the channel is 8 m. This yields a blocking ratio α = D/L = 0.3125. The center of the sphere is initially located at (x, y, z) = (0, 0, 0). Zero velocity boundary conditions are imposed along ∂U. The density of the fluid and solid are taken to be ρ = 2 kg/m3 , and the fluid viscosity is taken to be µ = 0.05 kg/(ms). A gravitational body force −0.5gρey , in which g is the gravitational constant, is added to the solid region. The drag coefficient ρV D D is CD = ρV8F2 πd , and the hydrodynamic 2 , the Reynolds number is Re = µ π 3 g drag on the sphere is F = 6 d ρ 2 , in which V is the terminal velocity of the sedimenting sphere. For the case considered in this work, we have Re ≈ 31 and CD = 2.67. A grid convergence study was performed using a fixed-size time step ∆t = 0.002 s. Fig. 6(a) shows the terminal velocity as a function of grid spacing, and demonstrates that the algorithm is first-order accurate with respect to grid size. The overall order of accuracy is primarily affected by the accuracy of the method at fluid-structure interfaces, which are “smeared out” by our use of regularized delta functions. For the finest grid resolution considered, in which h`max = 0.025 m is the Cartesian grid spacing on the finest level of the hierarchical grid, we obtain a terminal velocity V = 1.2385 m/s. This is in good agreement with the value reported by Sharma and Patankar [72]. We remark, however, that their mass density difference ∆ρ for the solid and fluid was small. Here we used a body force equal to ∆ρg in the solid region as a Boussinesq-type approximation to the case in which the mass density of the solid is different from that of the fluid. Fig. 6(b) compares the velocity of the sphere in the −ey direction as a function of time to the experimental fit obtained by Mordant and Pinton [71]. They showed that the particle velocity normalized by its terminal velocity collapses onto a single exponential curve, 3t v/V = 1 − exp − , t95 (67) in which t95 is the time required for the sphere to reach 95% of its terminal velocity. Our results are seen to be in excellent agreement with this experimentally characterized curve. 28 7.2.2 Impulsively started cylinder We take the case of impulsively started cylinder in a quiescent flow to demonstrate the momentum-conservation properties of our method. A cylinder of diameter D = 1 m is placed the center of a periodic domain of size [32 m×16 m] at time t = 0. An impulse of the form I(t) = 400 exp(−400t) N/m−3 is applied in the x direction in within the body, at its initial position, thereby impulsively starting its motion. The net momentum ∆Mx imparted to the system in the x direction is found analytically as ∆Mx = Z t=∞ Z Ub (t=0) I(t) dt ds. (68) t=0 The density of fluid and solid is set to 1 kg/m−3 , and the Reynolds number Re = ρVµD is taken to be 200 with the reference velocity V = 1 m/s. Three grid levels are used in the simulation, with the coarsest grid having 64 × 32 grid cells. A uniform refinement ratio nref = 4 is used for subsequent patch levels. Fig. 7(a) compares the computed linear momentum imparted to the system with the analytical result. These values are seen to be in good agreement. Fig. 7(b) and 7(c) show the translational and rotational velocity of the cylinder as a function of time. The cylinder moves with a constant translational velocity and a negligible rotational velocity at steady state. 7.2.3 Cylinder and sphere in shear driven flow To validate the algorithm for problems with rotational degrees of freedom, we consider rigid bodies in shear-driven channel flow. For a two-dimensional validation case, we consider a cylinder in shear flow, as considered by Yeo et al. [73]. A cylinder of diameter D is immersed in a rectangular channel of height H = 4D and length L = 40H. The center of the cylinder is initially positioned at (L/4, H/4) relative to the lower corner of the channel; see Fig. 8. The channel is periodic in the x direction, and tangential velocity boundary conditions with equal and opposite velocities of magnitude Uw are imposed on the lower and upper y boundaries to create a shear-driven flow in the channel. The domain is discretized using a two-level grid, with a grid spacing of h = 1/80 on the coarsest level and uniform refinement ratio nref = 4. The Reynolds number of the flow, which is defined by Re = 2ρUw H/µ, is taken to be 40. Fig. 9 shows the angular velocity and y position of the center of mass of the cylinder as a function of time. In the figure, time is normalized by H/2Uw , angular velocity is normalized by 2Uw /H, and distance is normalized by H. At steady state, the cylinder rotates with constant angular velocity at the center of the channel. The steady-state normalized angular velocity of the cylinder is around 0.47, which is in excellent agreement with the value reported by Yeo 29 (a) (b) (c) Fig. 7. (a) Linear momentum imparted to the system as a function of time. Upper: ∆Mx ; Lower: ∆My ; ---: Theoretical estimate of ∆Mx . (b) Temporal evolution of translational velocity of the cylinder. (c) Temporal evolution of rotational velocity of the cylinder. Fig. 8. Computational domain showing initial position of a cylinder in a driven shear flow. 30 (a) (b) Fig. 9. Cylinder in a shear flow at Re = 40. (a) Normalized angular velocity of the cylinder as a function of time. (b) y position of the center of mass of the cylinder as a function of time. Fig. 10. Time evolution of normalized angular velocity of a sphere in a driven shear flow as a function of time for shear rates γ = 1/s and 3/s. In the cases considered here, Re = 10. et al. [73]. Next, we consider the three-dimensional case of a neutrally bouyant sphere in a shear-driven channel flow. This problem has been experimentally and numerically studied in previous work [74–78]. A sphere of radius R is immersed in a rectangular channel of width 40R, and with height and breadth of 6R. The sphere is positioned at the center of the channel, and the walls of the channel are moved at a velocity of −γy in x direction to create a flow with shear rate γ. The physical domain is discretized by a two-level grid, with the coarse level consisting of a uniform 200 × 30 × 30 grid, and with a refinement ratio of nref = 4 between levels. The Reynolds number of the flow is Re = ργR2 /µ and is set to equal 10. Fig. 10 shows the angular velocity of the sphere (normalized by γ) as a function of time (normalized by 1/γ) for shear rates γ = 1/s and 3/s. Both curves collapse on each other. Steady state is achieved earlier at higher shear rate. The steady state angular velocity of the sphere reaches a 31 value of 0.4. This is in excellent agreement with the study done by Mikulencak and Morris [77]. 7.3 Free swimming We next consider problems involving free swimming in which the body is required to move with a prescribed kinematic velocity or shape. In these cases, although the deformational kinematics of the body are prescribed, it is important to note that the translational and rotational velocities of the body are not specified in advance; rather, they are determined by the interaction of the immersed body and the fluid. We use two models, a two-dimensional model of a freely swimming eel with kinematics that are imposed using the prescribed-shape method described in Sec. 4.4, and a three-dimensional model of the black ghost knifefish, for which we use the prescribed-kinematic velocity methods described in Sec. 4.3. 7.3.1 Two-dimensional model of eel swimming As an initial example, we consider a two-dimensional model of eel swimming [2, 14]. The geometry and deformation of the eel body is prescribed analytically, as described below, and a periodic backward-traveling wave is passed over the body to induce forward swimming. We use the prescribedshape approach described in Sec. 4.4 to update the position of the body, and we verify that “filtered” and “unfiltered” prescribed shape mappings (see Sec. 4.4) yield identical results. The geometry of the eel body is given in a reference configuration that is aligned with the x-coordinate axis. This geometry is specified in terms of the vertical displacement y(x, t) of the midline of the eel body from the x-axis, and in terms of the width w(x) of a body cross-section perpendicular to the x-axis at each point 0 ≤ x ≤ L along the projected length L of the eel. To account for the traveling wave, the displacement of the midline from the x-axis is given by x + 0.03125 sin [2π(x − t/T )] , (69) y(x, t) = 0.125 1.03125 for 0 ≤ x ≤ L, in which T is the time period of a backward-traveling wave. The width of a body cross-section perpendicular to the x-axis and centered about the midline of the body is given by w(x) = √ 2w Hx − wH L−x L−xH x2 for 0 ≤ x < xH , for xH ≤ x < L, (70) in which wH = 0.04L is the width of the eel at its “head,” which is located at 32 (a) (b) Fig. 11. (a) Temporal evolution of different translational velocities induced by the unfiltered kinematics. —: Projected axial velocity, Up ; ---: Projected lateral velocity, Vp ; — (red): Net axial velocity of deformational kinematics, Up,k ; -N- (cyan): Net lateral velocity of deformational kinematics, Vp,k . (b) Temporal evolution of rotational velocities induced by the unfiltered kinematics. —: Projected Wpz ; ---: z of the deformational kinematics. Net Wp,k xH = wH . Time is normalized by T , distances are normalized by L, masses are normalized by the mass of eel and velocities are normalized by U0 = L/T = 1. The Reynolds number of the flow is Re = Vmax L/ν = 5609, in which Vmax = 0.785 U0 is the maximum undulatory velocity at the tail tip. We use a periodic computational domain of size 8L × 4L. We employ a fourlevel Cartesian grid with the coarsest level having 32×16 grid cells. A uniform refinement ratio nref = 4 is used for subsequent patch levels. To resolve the boundary layer along the fluid-body interface, the body is always kept within the finest grid level. Grid cells are also tagged for refinement wherever kω z k ≥ 0.25 on level 0, kω z k ≥ 0.5 on level 1, kω z k ≥ 1 on level 2, and kω z k ≥ 2 on level 3. Because we have an analytic formula for the body shape, the deformational velocity can be obtained by differentiating the prescribed shape with respect to t. Specifically, it is not necessary to use finite differencing or other numerical approximation techniques to obtain Uk . We remark, however, that the deformational kinematic velocity obtained from the analytic formulae for the body shape has nonzero net translational and rotational velocities, and these net velocities should not be imposed on the motion. We perform two sets of simulations: one in which the prescribed shape and deformational velocity are obtained from a filtered shape mapping, in which the net translational and rotational motions have been removed from the prescribed shape and kinematic velocity, and the other using the unfiltered shape and kinematic velocity obtained from the analytic formulae for the body shape. Because the method described in Sec. 4.4 corrects for any net linear or angular velocity in the prescribed shape, both cases should yield the same numerical results. 33 (a) (b) Fig. 12. (a) Temporal evolution of translational velocities induced by the filtered kinematics. Upper: Rigid axial velocity of the center of mass. Lower: Rigid lateral velocity of the center of mass. —: Rigid translational velocity induced by the filtered kinematics, Ur ; • (red) Validation of eq. (56) when unfiltered kinematics are used. (b) Temporal evolution of rotational velocity of center of mass of the eel induced by the filtered kinematics. —: Rigid rotational velocity induced by the filtered kinematics, Wrz ; • (red) Validation of eq. (57) when unfiltered kinematics are used. (a) t = 4 (b) t = 5.5 (c) t = 6 (d) t = 7.5 Fig. 13. Vorticity generated by the two-dimensional eel model at Re = 5609. All figures are plotted for vorticity between −10 and 10. Figs. 11(a) and 11(b) show the case in which unfiltered deformational kinematics and shape are used, and Figs. 12(a) and 12(b) show the case in which filtered deformational kinematics and shape are used. Both sets of simulations yield the same rigid-body velocities, Ur and Wr . The angular velocity has zero mean, whereas the lateral velocity has a small nonzero mean because of initial transients. Fig. 14 shows the trajectory of center of mass and the temporal evolution of hydrodynamic force on eel. As can be seen from Fig. 15(a), vorticity is generated over the body of the eel 34 (a) (b) Fig. 14. (a): Trajectory of the center of mass of eel; and (b) hydrodynamic forces (—: axial, ---: lateral) on the body of the eel. (a) (b) Fig. 15. (a) Velocity and vorticity field in the domain close to the body of the eel. (b) Grid patches of the locally refined mesh moving with body and capturing vortex structures shed from the eel. on both sides of the lateral surface, and is then shed from the tip of the tail forming a reverse Kármán vortex street containing downstream-directed momentum. As a result, the body is able to propel itself forward. Fig. 15(b) shows the locally refined mesh, which adapts to capture important flow features shed from the swimmer. The Strouhal number of the eel is St = 2Atail /T Us [79], in which Atail is the amplitude of the motion at the tip of the tail, and Us is the steady swimming velocity of the eel. In this simulation, St = 0.395, which is in the range of Strouhal numbers that have been observed for real eels [80]. Whether we use filtered kinematics or filter the prescribed kinematics, there is no net external force acting on the system. As a result, the momentum of the entire fluid-structure system (i.e., the eel and fluid) should remain constant. In this example, the eel starts its swimming motion in a quiescent flow and therefore the net linear momentum of the system should remain zero, as is shown in Fig 16. 35 Fig. 16. Temporal evolution of linear momentum of the system. 7.3.2 Weakly electric black ghost knifefish As a next example, we model free swimming of Apteronotus albifrons, the weakly electric black ghost knifefish, as shown in Fig. 17(a). The black ghost knifefish is a highly maneuverable organism that propels itself by undulating a ribbon fin that is attached to its upper body. A three-dimensional reconstruction of an accurate cast of an adult knifefish by MacIver and Nelson [81] is used to specify the geometry of the body of the fish. Postprocessing of the model geometry ensures that the initial configuration of the body conforms to the background Eulerian mesh and that no voids were left inside the body. The length of the model fish from the tip of the nose to the end of the tail is approximately 12.5 cm. Because the real fish holds its upper body rigid while swimming, the upper body is modeled as a rigid structure. The ribbon fin, which has a length of approximately 9 cm, begins near the end of the head and tapers near the end of the tail. The shape of the fin and its deformational kinematics are taken from experimental data of Ruiz-Torres et al. [34]. The fin is composed of several rays that oscillate in a pendulum-like motion about a fixed point attached to the rigid upper body. The angular amplitude θmax (x) is different for each fin ray and is derived from the experimental data. A good match to these data is obtained by specifying the motion as a sinusoidal wave with frequency f = 10 Hz and wavelength λ = L/2.4 cm. The equation of the angular displacement for the fin is given by θ = θmax (x) sin(kx − 2πf t), (71) in which x is the position along the body and k = 2π/λ cm−1 is the wavenumber. The kinematic velocity of the fin oscillation is obtained by differentiating the prescribed motion, and the overall deformational kinematics are imposed using the methods described in Sec. 4.3. A computational domain of size 5.2L×1.3L×1.2L is used, and this region is discretized using a three-level locally refined grid with a uniform 102 × 26 × 24 grid at the coarsest level and with a uniform refinement ratio nref = 4 between levels. The body and the fin 36 (a) (b) (c) Fig. 17. (a) Apteronotus albifrons, the weakly electric black ghost knifefish (photograph courtesy of Per Erik Sviland). (b) Surge, heave, and lateral velocities of black ghost knifefish swimming at a frequency of 10 Hz. ---: Surge velocity; •: Heave velocity; —: Lateral velocity. (c) Surge, heave, and lateral components of force for black ghost knifefish swimming at a frequency of 10 Hz. ---: Surge force; • (blue): Heave force; — (red): Lateral force. were kept on the finest grid level, which had a grid spacing equivalent to that of a uniform 1632 × 416 × 384 Cartesian grid. Fig. 17(b) and 17(c) show the surge (U ), heave (V ), and lateral (W ) components of velocity and force. The rotational degrees of freedom of the body are locked to zero to avoid tumbling during swimming; this is done to account for the missing pectoral fins in the simulation, which are used by the real knifefish to stabilize its swimming motion. In the simulation, the steady swimming velocity approaches 12 cm/s, whereas the experimentally measured swimming velocity is 14–15 cm/s [34], for a relative error that is within 20%. The simulation was done on 24 processors at the Quest supercomputing facility at Northwestern University with a wall-clock time of approximately 25 hours. 37 Fig. 18. Center of mass of an eel following a circular path. Distances are normalized by the body length. —: Trajectory of center of mass of eel; ---: Circle of radius 1. 7.4 Turns and maneuvers In the cases considered in the foregoing section, the main axis of the swimmer was kept straight at all times, leading to a straight swimming motion. In this section, we explore the effect of the curved body axis that fishes acquire when they need to change direction [27, 73]. We use the model eel described in Sec. 7.3.1 to study the effect of a curved body axis on swimming. The deformational kinematics of the eel are imposed using the prescribed-shape method described in Sec. 4.4. We also explore the mechanism of forward and backward motion of the black ghost knifefish. The deformational kinematics in this case are imposed using the prescribed-kinematic velocity method described in Sec. 4.3. 7.4.1 Two-dimensional eel We begin by considering the swimming motion of a two-dimensional eel whose body axis is defined with respect to a circular arc of radius R0 . The radius of curvature is set to equal to length of the eel, i.e., R0 = L. The kinematic deformation velocity is specified normal to the curved axis, and the Reynolds number is taken to be the same as that of straight swimming case. During steady swimming with a curved body axis, the mean angular swimming velocity is nonzero. As a result, the eel follows a circular trajectory. The radius of the swimming motion is a result of balance between the mean angular and net swimming velocity of the eel. The distance ∆s traversed by the eel swimming with an angular velocity of W over a time interval ∆T is ∆s = RW ∆T, 38 (72) (a) t = 2 (b) t = 5 (c) t = 7.5 (d) t = 11 Fig. 19. Vorticity generated by the two-dimensional eel following a circular trajectory. All figures are plotted for vorticity between −10 and 10. Time is normalized by T; see Sec. 7.3.1. ∆s in which R is the radius of the swimming trajectory. If U = ∆T = RW is the swimming speed, then U R= . (73) W We find that when the body axis of the eel has a particular radius of curvature, the eel follows a circular trajectory of some radius. As can be seen in Figs. 18 and 19, for the present choices of parameters, the eel’s center of mass follows a circle of radius R = R0 = L, which also happens to be the prescribed radius of curvature of the body axis. To test the robustness of this mechanism of maneuvering, simulations were carried out for different body axis radii at various Reynolds numbers, and the corresponding trajectory radii were measured. Fig. 20(a) shows the variation with Reynolds number of δR = (R−R0 )/L, the normalized difference between the radius of curvature of the trajectory of the eel and the prescribed body axis radius. The relationship between δR and Re is similar for the three cases considered, R0 = 0.5L, 0.7L, and 1.3L: δR is small at higher Reynolds number and increases as Reynolds number decreases. Fig. 20(b) shows the computed value of R from eq. (73) as a function of Re for the case R0 = 0.7L. We can use this observation (i.e., that at higher Reynolds number the radius of curvature of the eel’s trajectory is approximately equal to the radius of curvature of the body axis) to develop a simple mechanism for controlling the trajectory of the eel. Specifically, for the eel to travel from point A to point B in the domain, it can bend its body to turn and reach its destination. 39 (a) (b) Fig. 20. Variation with respect to Reynolds number of (a) the normalized difference between trajectory radius and body axis radius; and (b) the predicted trajectory radius. Fig. 21. Eel tracking “food.” The radius of curvature of the body axis depends on the control parameter θv . 40 (a) t = 0.15 (b) t = 3.5 (c) t = 5.2 (d) t = 7.4 Fig. 22. Eel tracking “food” in the domain. • Food location in the domain. All figures are plotted for vorticity between −10 and 10. Time is normalized by T; see Sec. 7.3.1. We illustrate this control mechanism by considering an example in which an eel tracks “food” in the domain. The eel starts from an initial point A and swims to reach the target location B where the food is located. A control parameter, the angle of vision θv , is defined as the angle made by two lines: the line passing through the eel’s “eye,” which is taken to be located at the front of the head, and the center of mass of eel, and the line passing through the eye and the point B; see Fig. 21. We use this angle to control the radius of curvature of the body axis, which in turn adjusts the trajectory of eel. We prescribe a relationship between the radius of curvature of the body and θv via |θv | ≥ θ̂u , r̄, θ̂u r(θv ) = r̄ θ̂ , |θv | ≤ θ̂l , (74) l r̄ θ̂u , |θv | otherwise, in which r̄ is the mean body axis radius of curvature, and θ̂u and θ̂l are the upper and lower cut-off angle of vision, respectively. When the eel is sufficiently close to the target location, we do not further change the body axis radius. Thus, eq. (74) is used only when the distance between the eel and the target ¯ Once the distance is below d, ¯ location is greater than a cut-off distance d. the eel makes no further adjustments to its body curvature. Fig. 22 shows an example simulation in which we set r̄ = L, θ̂u = 45 ◦ , θ̂l = 7 ◦ , and d¯ = 0.2L. In this case, the radius of curvature of the body axis has an initial value of r̄. We remark that this control mechanism is presented as an example of how turns and maneuvers may be handled by our numerical method; it is not meant to correspond to the mechanism used by a real eel. However, although the 41 proposed control mechanism may not be used by an actual eel, this mechanism could be used by a robotic undulatory swimmer. 7.4.2 Forward and backward motion of black ghost knifefish A fascinating capability of the black ghost knifefish is its ability to reverse its swimming direction by changing the direction of the traveling wave along its ribbon fin. To simulate this mechanism for changing the direction of swimming, we use the same knifefish model described in Sec. 7.3.2, except now we change the motion of the fin to produce both forward and backward motion. In these simulations, the domain is 4L×L×L, and a three-level Cartesian grid hierarchy is employed, with a uniform 44 × 12 × 12 grid at the coarsest level, and with a uniform refinement ratio nref = 4 for subsequent levels. A constant angular amplitude θmax (x) = 30◦ is used for each of the fin rays, and the traveling wave frequency is f = 2 Hz. From t = 0 s to t = 4 s, the wave travels in the backward direction, which propels the fish forward. The direction of the traveling wave is instantaneously reversed at t = 4 s, causing the fish to swim backwards. Fig. 23 shows the flow structure generated as a result of knifefish swimming. The top two panels show the forward swimming motion of knifefish from t = 0 s to t = 4 s. During forward swimming, the direction of the fluid jet is aligned with the body axis and backwards. As a result the swimming velocity of the knifefish has a forward axial (surge) component and a negligible upward (heave) component. The bottom two panels of Fig. 23 show the backward swimming motion of knifefish, from t = 4 s onward. At this point in time, the jet is no longer aligned with the body axis but is in the forward direction. Consequently, during backward motion, the swimming velocity of the knifefish has an upward heave velocity in addition to a reverse surge velocity. This can also be seen in Fig. 24(a), in which at t = 4 s, both surge and heave velocities change in a short time, thereby changing the direction of swimming of the fish. The angle at which the fin is attached to the main body plays an important role in the direction of swimming motion. The fin angle appears to be optimized for straight forward swimming, and this optimal angle for forward swimming results in the backward motion having a nonzero vertical velocity component. Fig. 24(b) shows the trajectory of the center of mass of the knifefish. The vortex structures are most prominent near the fin region. This suggests that higher grid resolution is needed near the fin region, whereas the body may not require as high resolution. For high-frequency swimming cases, in which f > 15 Hz, an additional level of grid refinement can be added only in the vicinity of the fin. 42 (a) t = 2.2 s (b) t = 3.9 s (c) t = 7.2 s (d) t = 9.84 s Fig. 23. Isosurface (4 s−1 ) of the fluid vorticity magnitude generated by reversal of the direction of the swimming motion of the knifefish. 43 (a) (b) Fig. 24. (a) Surge and heave velocity of knifefish during reversal. (b) Trajectory of the center of mass of the fish during forward and backward swimming. (a) (b) Fig. 25. Body plan of a swimmer composed of a rigid “head” and a flexible “tail.” (a) The head of the swimmer, which is treated as a rigid structure. (b) The tail of the swimmer, which is flexible and elastic. 7.5 Muscle-driven swimming motion As a final example, we simulate swimming motion driven by muscle forcing. In this example, the swimmer is a two-dimensional body of length L with a rigid “head” and a flexible “tail.” The elastic tail consists of a truss-like structure composed of three elastic fibers that are linked to each other by stiff springs. The head of the body is also linked to the tail by stiff springs. The middle fiber of the tail has a time-dependent preferred curvature that corresponds to 44 (a) t = 0.18 s (b) t = 0.44 s (c) t = 0.675 s (d) t = 0.81 s Fig. 26. Body position and wake structure for a swimmer composed of a rigid head and a flexible and elastic tail. All panels show vorticity for the range −100 to 100 s−1 . the curve x − ft , (75) λ in which x is the position along the body, A is the amplitude of the traveling wave, λ is the wavelength, and f is the frequency. The muscles in the elastic tail region exert forces that are proportional to the difference in the present configuration to the preferred curvature of the structure [82]; see eq. (15). We set the amplitude to be 0.05L, the frequency to be 10 Hz, and the wavelength to be 0.55L. The head of the swimmer is an ellipse with semimajor axis length 0.2L and semiminor axis length 0.1L. The length of the tail is 0.6L. Fig. 25 shows the rigid head and elastic tail of the swimmer. A 6L × 3L periodic computational domain is used along with a four-level Cartesian grid with a uniform 16 × 8 coarse level along with a uniform refinement ratio nref = 4. The stiffness constant Ks of the springs is set to be large enough to maintain an approximately constant distance between Lagrangian points. The flexural rigidity Kb of the middle fiber is chosen to be large enough to obtain reasonable deformations. A constant time step size ∆t = 2 µs is used. (This time step size is significantly smaller than the maximum stable time step associated with the convective CFL condition, and must be used because of the explicit treatment of the elastic forces used in the present algorithm. Presumably such time step size restrictions could be relaxed by employing an implicit time stepping scheme.) Fig. 26 shows the swimming motion and the resulting wake structure in the fluid. The elastic tail pushes the fluid, which in turn propels the entire body of the swimmer. Rotational motion was locked in the head to prevent overall rotational motion of the body. yp (x, t) = A cos 2π 45 Fig. 27. Swimming velocity (body length/sec) of the swimmer. Upper: Axial velocity; Lower: Lateral velocity. 8 Conclusions This paper has presented a unified approach to simulating fluid-structure interaction problems involving rigid, deforming, or fully elastic immersed bodies. We employ an immersed boundary (IB) type of approach to such problems that avoids the need for complex, body-fitted grids and the corresponding expense of frequent remeshing. The algorithm described herein employs adaptive mesh refinement (AMR), and although this approach also requires grid regeneration, the relatively simple grid generation algorithms and data structures employed by AMR discretizations make regridding relatively inexpensive. Moreover, regridding can occur relatively infrequently, and thus the already low cost of grid generation can generally be amortized over several time steps. Using this adaptive solution methodology, we studied several benchmark problems in both two and three spatial dimensions, and excellent agreement was obtained to prior analytic or numerical results for these problems. We also applied this methodology to the simulation of free swimming, including a two-dimensional model eel and a three-dimensional model of the black ghost knifefish. Were we required to employ a uniformly fine discretization for the model knifefish, our simulation would have required more than one billion degrees of freedom. Our adaptive scheme allows us to achieve comparable spatial resolution at a fraction of the computational cost. A limitation of our present numerical method is that it is limited to first-order accuracy. This is in part because of its use of regularized delta functions to mediate fluid-solid coupling, and in part because of the time step splitting approach used to decouple the unconstrained solve from the imposition of constraints on the body motion. It may be possible to adapt sharp-interface methods such as the immersed interface method [83,84] to the present context and thereby obtain a higher-order accurate spatial discretization. It may also be possible to derive higher-order corrections that yield a second-order accu- 46 rate method, similar to the approach used by Brown, Cortez, and Minion [85] to develop fully second-order accurate versions of the projection method for incompressible flow. Alternatively, achieving full second-order accuracy may require the development of an unsplit solver. The construction of an efficient higher-order accurate version of the present scheme remains challenging future work. A final remark about our implementation is that it is presently restricted to constant-coefficient fluid solves, although we emphasize that this is not a limitation of the present mathematical formulation. This limitation makes it challenging to simulate immersed bodies that are not neutrally buoyant. Approaches similar to the penalty IB method [86] could possibly be used to account for bodies with mass densities greater than that of the fluid. An alternative is to employ a variable-density fluid solver, which makes it straightforward to model immersed bodies that are either more dense or less dense than the surrounding fluid [35–38]. Likewise, robust variable-coefficient fluid solvers could enable efficient simulations of truly elastic bodies by removing the viscous stresses from the elastic parts of the structure. Such extensions, which we and others are actively pursuing, will further strengthen this approach to simulating fluid-structure interaction. Acknowledgements A.P.S.B. acknowledges helpful discussions with Anup A. Shirgaonkar, Oscar M. Curet, and Srinivas Ramakrishnan over the course of this work. A.P.S.B, R.B, and N.A.P acknowledge computational resources provided by Northwestern University’s Quest high performance computing service and Malcolm A. MacIver for providing experimental kinematic data of the black ghost knifefish. We thank Aleksandar Donev for his suggestions on improving the manuscript. B.E.G. acknowledges research support from the National Science Foundation (NSF awards DMS-1016554 and OCI-1047734). A.P.S.B., R.B., and N.A.P. acknowledge research support from the National Science Foundation (NSF awards CBET-0828749, CBET-1066575, and CMMI-0941674). References [1] H. H. Hu, N. A. Patankar, M. Y. Zhu, Direct numerical simulations of fluid-solid systems using the arbitrary Lagrangian-Eulerian technique, J Comput Phys 169 (2001) 427–462. [2] S. Kern, P. Koumoutsakos, Simulations of optimized anguilliform swimming, J Expt Biol 209 (2006) 4841–4857. 47 [3] C. S. Peskin, The immersed boundary method, Acta Numer 11 (2002) 479–517. [4] M.-C. Lai, Z.-L. Li, A remark on jump conditions for the three-dimensional Navier-Stokes equations involving an immersed moving membrane, Appl Math Lett 14 (2) (2001) 149–154. [5] S. Xu, Z. J. Wang, Systematic derivation of jump conditions for the immersed interface method in three-dimensional flow simulation, SIAM J Sci Comput 27 (6) (2006) 1948–1980. [6] A. M. Roma, C. S. Peskin, M. J. Berger, An adaptive version of the immersed boundary method, J Comput Phys 153 (2) (1999) 509–534. [7] B. E. Griffith, R. D. Hornung, D. M. McQueen, C. S. Peskin, An adaptive, formally second order accurate version of the immersed boundary method, J Comput Phys 223 (1) (2007) 10–49. [8] B. E. Griffith, R. D. Hornung, D. M. McQueen, C. S. Peskin, Parallel and adaptive simulation of cardiac fluid dynamics, in: M. Parashar, X. Li (Eds.), Advanced Computational Infrastructures for Parallel and Distributed Adaptive Applications, John Wiley and Sons, Hoboken, NJ, USA, 2009. [9] B. E. Griffith, Immersed boundary model of aortic heart valve dynamics with physiological driving and loading conditions, Int J Numer Meth Biomed Eng 28 (3) (2012) 317–345. [10] R. Glowinski, T.-W. Pan, T. I. Hesla, D. D. Joseph, A distributed Lagrange multiplier/fictitious domain method for particulate flows, Int J Multiphas Flow 25 (1999) 755–794. [11] N. A. Patankar, P. Singh, D. D. Joseph, R. Glowinski, T. Pan, A new formulation of the distributed Lagrange multiplier/fictitious domain method for particulate flows, Int J Multiphas Flow 26 (2000) 1509–1524. [12] N. A. Patankar, A formulation for fast computations of rigid particulate flows, Tech. rep., Center for Turbulence Research Annual Research Briefs, http://ctr.stanford.edu (2001). [13] N. A. Patankar, Physical interpretation and mathematical properties of the stress-DLM formulation for rigid particulate flows, Int J Comput Method Eng Sci Mech 6 (2005) 137–143. [14] A. A. Shirgaonkar, M. A. MacIver, N. A. Patankar, A new mathematical formulational and fast algorithm for fully resolved simulation of self-propulsion, J Comput Phys 228 (2009) 2366–2390. [15] A. J. Chorin, Numerical solution of the Navier-Stokes equations, Math Comput 22 (104) (1968) 745–762. [16] M. J. Berger, J. Oliger, Adaptive mesh refinement for hyperbolic partial-differential equations, J Comput Phys 53 (3) (1984) 484–512. 48 [17] M. J. Berger, P. Colella, Local adaptive mesh refinement for shock hydrodynamics, J Comput Phys 82 (1) (1989) 64–84. [18] L. J. Fauci, C. S. Peskin, A computational model of aquatic animal locomotion, J Comput Phys 77 (1988) 85–108. [19] E. D. Tytell, C.-Y. Hsu, T. L. Williams, A. H. Cohen, L. J. Fauci, Interactions between internal forces, body stiffness, and fluid environment in a neuromechanical model of lamprey swimming, Proc Natl Acad Sci U S A 107 (2010) 19832–19837. [20] H. Zhao, J. B. Freund, R. D. Moser, A fixed-mesh method for incompressible flow-structure systems with finite solid deformations, J Comput Phys 227 (2008) 3114–3140. [21] G. Herschlag, L. Miller, Reynolds number limits for jet propulsion: A numerical study of simplified jellyfish, J Theor Biol 285 (2011) 84–95. [22] R. Mittal, Computational modeling in bio-hydrodynamics: trends, challenges and recent advances, IEEE J Ocean Eng 29 (2004) 595–604. [23] R. Mittal, H. Dong, G. V. Lauder, Locomotion with flexible propulsors. II: Computational modeling of pectoral fin swimming in sunfish, Bioinsp Biomim 1 (2006) S35–S41. [24] I. Borazjani, F. Sotiropoulos, Numerical investigation of the hydrodynamics of crangiform swimming in the translational and inertial flow regimes, J Expt Biol 211 (2008) 1541–1558. [25] A. A. Shirgaonkar, O. M. Curet, N. A. Patankar, M. A. MacIver, The hydrodynamics of ribbon-fin propulsion during impulsive motion, J Expt Biol 211 (2008) 3490–3503. [26] O. M. Curet, I. K. AlAli, M. A. MacIver, N. A. Patankar, A versatile implicit iterative approach for fully resolved simulations of self-propulsion, Comput Meth Appl Mech Eng 199 (2010) 2336–2390. [27] M. Bergmann, A. Iollo, Modeling and simulation of fish-like swimming, J Comput Phys 230 (2011) 329–348. [28] G. V. Lauder, Function of the caudal fin during locomotion in fishes: kinematics, flow visualization, and evolutionary patterns, Am Zool 40 (2000) 101–122. [29] G. V. Lauder, J. C. Nauen, E. G. Drucker, Experimental hydrodynamics and evolution: function of median fins in ray-finned fishes, Integr Comp Biol 42 (2002) 1009–1017. [30] J. O. Dabiri, M. Gharib, Sensitivity analysis of kinematic approximations in dynamic medusan swimming models, J Expt Biol 206 (2003) 3675–3680. [31] E. D. Tytell, G. V. Lauder, The hydrodynamics of eel swimming. I: Wake structure, J Expt Biol 207 (2004) 1825–1841. 49 [32] O. M. Curet, N. A. Patankar, G. V. Lauder, M. A. MacIver, Aquatic manoeuvering with counter-propagating waves: a novel locomotive strategy, J R Soc Interface 8 (2011) 1041–1050. [33] O. M. Curet, N. A. Patankar, G. V. Lauder, M. A. MacIver, Mechanical properties of a bio-inspired robotic knifefish with an undulatory propulsor, Bioinspir Biomim 6 (2011) 026004. [34] R. Ruiz-Torres, O. M. Curet, G. V. Lauder, M. A. MacIver, Kinematics of the ribbon fin in hovering and swimming of the electric ghost knifefish, J Expt Biol (in press). [35] S. V. Apte, M. Martin, N. A. Patankar, A numerical method for fully resolved simulation (FRS) of rigid particle-flow interactions in complex flows, J Comput Phys 228 (2009) 2712–2738. [36] S. Apte, J. Finn, A Variable-Density Fictitious-Domain Method for Fully Resolved Simulation of High-Density Ratio Fluid-Particle Systems, in: 7th International Conference on Multiphas Flow, 2010, 13 pages. [37] T. G. Fai, B. E. Griffith, Y. Mori, C. S. Peskin, Immersed boundary method for variable viscosity and variable density problems using fast linear solvers. I: Numerical method and results, Manuscript submitted for publication. [38] T. G. Fai, B. E. Griffith, Y. Mori, C. S. Peskin, Immersed boundary method for variable viscosity and variable density problems using fast linear solvers. II: Theory, Manuscript submitted for publication. [39] B. E. Griffith, X. Luo, D. M. McQueen, C. S. Peskin, Simulating the fluid dynamics of natural and prosthetic heart valves using the immersed boundary method, Int J Appl Mech 1 (1) (2009) 137–177. [40] L. Zhang, A. Gerstenberger, X. Wang, W. K. Liu, Immersed finite element method, Comput Meth Appl Mech Eng 193 (21–22) (2004) 2051–2067. [41] W. K. Liu, Y. Liu, D. Farrell, L. Zhang, X. S. Wang, Y. Fukui, N. Patankar, Y. Zhang, C. Bajaj, J. Lee, J. Hong, X. Chen, H. Hsu, Immersed finite element method and its applications to biological systems, Comput Meth Appl Mech Eng 195 (13–16) (2006) 1722–1749. [42] D. Boffi, L. Gastaldi, L. Heltai, C. S. Peskin, On the hyper-elastic formulation of the immersed boundary method, Comput Meth Appl Mech Engrg 197 (25–28) (2008) 2210–2231. [43] D. Devendran, C. S. Peksin, An energy-based immersed boundary method for incompressible viscoelasticity, J Comput Phys 231 (14) (2012) 4613–4642. [44] B. E. Griffith, X. Luo, Hybrid finite difference/finite element version of the immersed boundary method (submitted, preprint available from http://www.cims.nyu.edu/ griffith). [45] B. E. Griffith, C. S. Peskin, On the order of accuracy of the immersed boundary method: Higher order convergence rates for sufficiently smooth problems, J Comput Phys 208 (1) (2005) 75–105. 50 [46] W. J. Rider, J. A. Greenough, J. R. Kamm, Accurate monotonicity- and extrema-preserving methods through adaptive nonlinear hybridizations, J Comput Phys 225 (2) (2007) 1827–1848. [47] P. Colella, P. R. Woodward, The piecewise parabolic method (PPM) for gas-dynamical simulations, J Comput Phys 54 (1) (1984) 174–201. [48] Y. Saad, A flexible inner-outer preconditioned GMRES algorithm, SIAM J Sci Comput 14 (2) (1993) 461–469. [49] B. E. Griffith, An accurate and efficient method for the incompressible Navier-Stokes equations using the projection method as a preconditioner, J Comput Phys 228 (20) (2009) 7565–7595. [50] M. J. Berger, I. Rigoutsos, An algorithm for point clustering and grid generation, IEEE Trans Syst Man Cybern 21 (5) (1991) 1278–1286. [51] G. Tóth, P. L. Roe, Divergence- and curl-preserving prolongation and restriction formulas, J Comput Phys 180 (2) (2002) 736–750. [52] IBAMR: An adaptive and distributed-memory parallel implementation of the immersed boundary method, http://ibamr.googlecode.com. [53] SAMRAI: Structured Adaptive Mesh Refinement Application Infrastructure, http://www.llnl.gov/CASC/SAMRAI. [54] R. D. Hornung, S. R. Kohn, Managing application complexity in the SAMRAI object-oriented framework, Concurrency Comput Pract Ex 14 (5) (2002) 347–368. [55] R. D. Hornung, A. M. Wissink, S. R. Kohn, Managing complex data and geometry in parallel structured AMR applications, Eng Comput 22 (3–4) (2006) 181–195. [56] S. Balay, K. Buschelman, W. D. Gropp, D. Kaushik, M. G. Knepley, L. C. McInnes, B. F. Smith, H. Zhang, PETSc Web page, http://www.mcs.anl.gov/petsc (2009). [57] S. Balay, K. Buschelman, V. Eijkhout, W. D. Gropp, D. Kaushik, M. G. Knepley, L. C. McInnes, B. F. Smith, H. Zhang, PETSc users manual, Tech. Rep. ANL-95/11 - Revision 3.0.0, Argonne National Laboratory (2008). [58] S. Balay, V. Eijkhout, W. D. Gropp, L. C. McInnes, B. F. Smith, Efficient management of parallelism in object oriented numerical software libraries, in: E. Arge, A. M. Bruaset, H. P. Langtangen (Eds.), Modern Software Tools in Scientific Computing, Birkhäuser Press, 1997, pp. 163–202. [59] hypre: High performance preconditioners, http://www.llnl.gov/CASC/hypre. [60] R. D. Falgout, U. M. Yang, hypre: a library of high performance preconditioners, in: P. M. A. Sloot, C. J. K. Tan, J. J. Dongarra, A. G. Hoekstra (Eds.), Computational Science - ICCS 2002 Part III, Vol. 2331 of 51 Lecture Notes in Computer Science, Springer-Verlag, 2002, pp. 632–641, also available as LLNL Technical Report UCRL-JC-146175. [61] libMesh: C++ Finite Element Library, http://libmesh.sourceforge.net. [62] B. Kirk, J. W. Peterson, R. H. Stogner, G. F. Carey, libMesh: A C++ library for parallel adaptive mesh refinement/coarsening simulations, Eng Comput 22 (3–4) (2006) 237–254. [63] K. Taira, T. Colonius, The immersed boundary method: a projection approach, J Comput Phys 225 (2007) 2118–2137. [64] S. C. R. Dennis, W. Quang, M. Coutanceau, J.-L. Launay, Viscous flow normal to a flat plate at moderate Reynolds numbers, J Fluid Mech 248 (1993) 605–635. [65] M. Uhlmann, First experiments with simulation of particulate flows, Technical reports 1020, issn: 1135-9420, Tech. rep., CIEMAT, Madrid, Spain (2003). [66] M. Braza, P. Chassaing, H. H. Minh, Numerical study and physical analysis of the pressure and velocity fields in the near wake of a circular cylinder, J Fluid Mech 165 (1986) 79–130. [67] R. Henderson, Nonlinear dynamics and pattern formation in turbulent wake transition, J Fluid Mech 352 (1997) 65–112. [68] J.-W. He, R. Glowinski, R. Metcalfe, A. Nordlander, J. Périaux, Active control and drag optimization for flow past a circular cylinder. Part 1. Oscillatory cylinder rotation, J Comput Phys 163 (2000) 83–117. [69] L. Shen, E.-S. Chan, P. Lin, Calculation of hydrodynamic forces acting on submerged moving object using immersed boundary method, Comput Fluid 38 (2009) 691–702. [70] H. Dutsch, F. Durst, S. Becker, H. Lienhart, Low-Reynolds-number flow around an oscillating circular cylinder at low Keulegan-Carpenter numbers, J Fluid Mech 360 (1998) 249–271. [71] N. Mordant, J. F. Pinton, Velocity measurement of a settling sphere, Eur Phys J B 18 (2000) 343–352. [72] N. Sharma, N. A. Patankar, A fast computational technique for the direct numerical simulation of rigid particulate flows, J Comput Phys 205 (2005) 439–457. [73] K. S. Yeo, S. J. Ang, C. Shu, Simulation of fish swimming and manoeuvring by an SVD- GFD method on a hybrid meshfree-Cartesian grid, Comput Fluid 39 (2010) 403–430. [74] G. G. Poe, A. Acrivos, Closed-streamline flows past rotating single cylinders and spheres: inertia effects, J Fluid Mech 72 (1975) 605–623. 52 [75] H. Nirschl, H. A. Dwyer, V. Denk, Three-dimensional calculations of the simple shear flow around a single particle between two moving walls, J Fluid Mech 283 (1995) 273–285. [76] N. A. Patankar, H. H. Hu, Finite Reynolds number effect on the rheology of a dilute suspension of neutrally buoyant circular particles in a Newtonian fluid, Int J Multiphas Flow 28 (2002) 409–425. [77] D. R. Mikulencak, J. F. Morris, Stationary shear flow around fixed and free bodies at finite Reynolds number, J Fluid Mech 520 (2004) 215–242. [78] P. Yu, K. S. Yeo, D. S. Sundar, S. J. Ang, A three-dimensional hybrid meshfree-Cartesian scheme for fluid-body interaction, Int J Numer Meth Eng 88 (2011) 385–408. [79] G. S. Triantafyllou, M. S. Triantafyllou, M. A. Grosenbaugh, Optimal thrust development in oscillating foils with application to fish propulsion, J Fluids Struct 7 (1993) 205–224. [80] E. D. Tytell, The hydrodynamics of eel swimming II. Effect of swimming speed, J Expt Biol 207 (2004) 3265–3279. [81] M. A. MacIver, M. E. Nelson, Body modeling and model-based tracking for neuroethology, J Neurosci Method 95 (2000) 133–143. [82] T. McMillen, P. Holmes, An elastic rod model for anguilliform swimming, J Math Biol 53 (2006) 843–886. [83] Z.-L. Li, M.-C. Lai, The immersed interface method for the Navier-Stokes equations with singular forces, J Comput Phys 171 (2) (2001) 822–842. [84] L. Lee, R. J. LeVeque, An immersed interface method for incompressible Navier-Stokes equations, SIAM J Sci Comput 25 (3) (2003) 832–856. [85] D. L. Brown, R. Cortez, M. L. Minion, Accurate projection methods for the incompressible Navier-Stokes equations, J Comput Phys 168 (2) (2001) 464–499. [86] Y. Kim, C. S. Peskin, Penalty immersed boundary method for an elastic boundary with mass, Phys Fluid 19 (2007) 053103 (18 pages). 53
© Copyright 2026 Paperzz