Post on 14-May-2020
A THREE-DIMENSIONAL
CARTESIAN TREE-CODE AND
APPLICATIONS TO VORTEX SHEET
ROLL-UP
by
Keith Lindsay
A dissertation submitted in partial fulfillmentof the requirements for the degree of
Doctor of Philosophy(Mathematics)
in The University of Michigan1997
Doctoral Committee:
Professor Robert Krasny, ChairAssistant Professor Peter SmerekaAssociate Professor Gretar TryggvasonProfessor Arthur WassermanProfessor Michael Weinstein
c© Keith Lindsay 1997All Rights Reserved
This thesis is dedicated to the memory of Bruce Lindsay.I miss you and think of you often.
ii
ACKNOWLEDGEMENTS
There are a few people I would like to thank for their support while I have
worked on this thesis. I would first like to thank my advisor Robert Krasny. With
his guidance, I have learned a great deal about fluid dynamics and numerical analysis.
Without his assistance, this thesis would not have been possible. I am grateful for all
that he has taught me and I look forward to working with him in the future. I would
also like to thank the other members of my dissertaion committee, Peter Smereka,
Gretar Tryggvason, Arthur Wasserman, and Michael Weinstein for their thoughtful
comments and suggestions. I extend a special thank you to Judy Florian for all of
the support that she has given me. I love you very much.
iii
TABLE OF CONTENTS
DEDICATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii
ACKNOWLEDGEMENTS . . . . . . . . . . . . . . . . . . . . . . . . . . iii
LIST OF FIGURES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
LIST OF TABLES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
LIST OF APPENDICES . . . . . . . . . . . . . . . . . . . . . . . . . . . . x
CHAPTER
1. INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Contributions of the Thesis . . . . . . . . . . . . . . . . . . . 2
2. FLUID DYNAMICS . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1 Governing Equations . . . . . . . . . . . . . . . . . . . . . . . 42.2 Vortex Sheets . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.1 Parametrization . . . . . . . . . . . . . . . . . . . . 92.2.2 Desingularization . . . . . . . . . . . . . . . . . . . 112.2.3 Discretization . . . . . . . . . . . . . . . . . . . . . 13
2.3 Vortex Rings . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.3.1 Formation . . . . . . . . . . . . . . . . . . . . . . . 182.3.2 Stability . . . . . . . . . . . . . . . . . . . . . . . . 192.3.3 Interactions . . . . . . . . . . . . . . . . . . . . . . 27
3. FAST METHODS FOR PARTICLE SIMULATIONS . . . . . 29
3.1 Mesh Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.2 Tree Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.3 Particle-Cluster Interactions . . . . . . . . . . . . . . . . . . . 353.4 Tree Construction . . . . . . . . . . . . . . . . . . . . . . . . 403.5 Recurrences for Taylor Coefficients . . . . . . . . . . . . . . . 42
iv
3.6 Error Analysis of Particle-Cluster Interactions . . . . . . . . . 493.7 Full Description of the Algorithm . . . . . . . . . . . . . . . . 573.8 Complexity Analysis . . . . . . . . . . . . . . . . . . . . . . . 59
4. ALGORITHM VALIDATION AND PERFORMANCE . . . 65
4.1 Convergence of Vortex Method . . . . . . . . . . . . . . . . . 664.2 Selection of Runtime Parameters . . . . . . . . . . . . . . . . 684.3 Algorithm Performance . . . . . . . . . . . . . . . . . . . . . 73
5. APPLICATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.1 Vortex Ring with Azimuthal Perturbation . . . . . . . . . . . 775.2 Elliptical Vortex Ring . . . . . . . . . . . . . . . . . . . . . . 795.3 Colliding Vortex Rings . . . . . . . . . . . . . . . . . . . . . . 85
6. CONCLUSIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
6.1 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 966.2 Directions for Future Work . . . . . . . . . . . . . . . . . . . 97
APPENDICES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
BIBLIOGRAPHY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
v
LIST OF FIGURES
Figure
2.1 A vortex sheet modeling parallel shear flow. . . . . . . . . . . . . . 7
2.2 Vortex lines and circulation. λ1, λ2 : Lagrangian parameters, y0 :reference point, y : point on surface, C : curve for circulation integral. 10
2.3 Discretization of parameter space and a circular disk. λ1, λ2 : La-grangian parameters. λ1 is a radial parameter and λ2 is a parameteraround the disk. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4 Particle insertion along a vortex line. given data (•), new particle(◦). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.5 Vortex line insertion. given data (•), new particle (◦). . . . . . . . 16
2.6 Propagating vortex ring. . . . . . . . . . . . . . . . . . . . . . . . . 17
2.7 Cylindrical coordinates and basis vectors. . . . . . . . . . . . . . . . 21
2.8 Dispersion relation. sign(ω2)|ω| vs. k. R = 1, δ = 0.18, 0.15, 0.12,0.09, 0.06. Going left to right, the peaks correspond to decreasing δ. 24
2.9 Colliding vortex rings. . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1 Particle-cluster interaction. x : target particle, yj : particle in clus-ter, τ : cell, y : center of τ . . . . . . . . . . . . . . . . . . . . . . . 36
3.2 Subdivision of space for random points. (a) Nested subdivision ofspace. (b) Associated tree structure. . . . . . . . . . . . . . . . . . . 43
3.3 Subdivision of space for points on a spiral. (a) Nested subdivisionof space. (b) Associated tree structure. . . . . . . . . . . . . . . . . 44
3.4 Computing Taylor coefficients for two-dimensional example. (•) :previous step, (◦x) : current step, (◦) : future step. . . . . . . . . . . 48
vi
4.1 Profile of rolling up vortex sheet. t = 1, δ = 0.10. . . . . . . . . . . . 67
4.2 Profile of rolling up vortex sheet. t = 4, δ = 0.10, ∆t = 0.05, ε1 =0.15, 0.10, 0.05, ε2 = 0.05 . . . . . . . . . . . . . . . . . . . . . . . . 69
4.3 Execution time (sec.) vs. N0. pmax = 6 (—), 8 (– – –), 10 (· · · ). . . 71
4.4 Memory usage (MB) vs. N0. pmax = 6 (—), 8 (– – –), 10 (· · · ). . . . 72
4.5 Execution time (sec.) vs. N . pmax = 8. tol = 10−2 (—), 10−3 (– – –),10−4 (· · · ). direct summation (–·–). actual data (o), projected data(x). (a) Execution time, (b) Direct summation time / fast algorithmtime. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.6 Memory usage (MB) vs. N . pmax = 8. fast algorithm (—), directsummation (–·–). actual data (o), projected data (x). (a) Memoryusage, (b) Fast algorithm memory usage / direct summation memoryusage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.7 Actual error vs. specified tolerance. pmax = 8, N0 = 500, N = 6284,12708, 25572, 38444, 51276. potential error bound (—), velocityerror bound (· · · ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.8 Execution time (sec.) vs. actual error. pmax = 8, N0 = 500, N= 6284, 12708, 25572, 38444, 51276. Connected lines are tol =10−2, 10−3, 10−4. potential error bound (—), velocity error bound(· · · ). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.1 Variance of perturbed vortex sheet. δ = 0.10, ρ= 0.10. k : wavenum-ber of perturbation, t : time. . . . . . . . . . . . . . . . . . . . . . . 80
5.2 Perturbed vortex sheet. k = 5. δ = 0.10, t = 0, 2, 4, 6. . . . . . . . 81
5.3 Perturbed vortex sheet. k = 9. δ = 0.10, t = 0, 2, 4, 6. . . . . . . . 82
5.4 Core of perturbed vortex sheet. k = 5, 9. δ = 0.10, t = 0, 2, 4, 6. . 83
5.5 Elliptical vortex sheet. a = 0.8. δ = 0.10, t = 0, 2, 4, 6. . . . . . . . 86
5.6 Elliptical vortex sheet. a = 0.6. δ = 0.10, t = 0, 2, 4, 6. . . . . . . . 87
5.7 Elliptical vortex sheet. a = 0.5. δ = 0.10, t = 0, 2, 4, 6. . . . . . . . 88
vii
5.8 Vortex sheets modeling colliding disks. δ = 0.10, t = 0, 1, 2, 3, 4, 4.5. 90
5.9 Cut-away of vortex sheets modeling colliding disks. δ = 0.10, t = 0,1, 2, 3, 4, 4.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.10 Vorticity isosurfaces of colliding vortex rings, perspective view. δ =0.10, t = 0, 1, 2, 3, 4, 4.5. . . . . . . . . . . . . . . . . . . . . . . . 92
5.11 Vorticity isosurfaces of colliding vortex rings, front view. δ = 0.10,t = 0, 1, 2, 3, 4, 4.5. . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.12 Vorticity isosurfaces of colliding vortex rings, side view. δ = 0.10, t= 0, 1, 2, 3, 4, 4.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.13 Vorticity isosurfaces of colliding vortex rings, top view. δ = 0.10, t= 0, 1, 2, 3, 4, 4.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
viii
LIST OF TABLES
Table
4.1 Machine characteristics. . . . . . . . . . . . . . . . . . . . . . . . . 66
4.2 Maximum point position differences for circular sheet. t = 1, δ =0.10, e(∆t) = maxi‖xi(∆t) − xi(∆t/2)‖. . . . . . . . . . . . . . . . 67
ix
LIST OF APPENDICES
Appendix
A. Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
B. Cylindrical Coordinate Identities . . . . . . . . . . . . . . . . . . . . . 104
C. Details from Circular Filament Analysis . . . . . . . . . . . . . . . . . 105
C.1 Propagation Speed of Circular Filament . . . . . . . . . . . . 105C.2 Linearized Evolution Equations for Perturbation . . . . . . . 107
x
CHAPTER 1
INTRODUCTION
1.1 Overview
This thesis presents an algorithm for the rapid computation of three-dimensional
vortex sheet motion. A vortex sheet is a material surface in the fluid across which the
tangential component of fluid velocity has a jump discontinuity. They are frequently
used as an asymptotic model for parallel shear flow.
In our study of vortex sheets, the governing equations are taken in a Lagrangian
form. When these equations are discretized, a large system of ordinary differential
equations results. Referring to the discretization elements as particles, this system
of equations is an N -body problem, a collection of N particles with pairwise inter-
actions. In an N -body problem, it is necessary to evaluate sums of the form
N∑
j=1
Kδ(xi,xj) × wj, i = 1, . . . , N, (1.1)
where xi, xj are particle positions, wj is a vector-valued weight associated with
the jth particle, and δ is a smoothing parameter. Computing the sums in (1.1)
directly, which is referred to as direct summation, requires O(N 2) operations. In our
simulations, N takes on values up to 106, so it is not practical to perform direct
summation. The algorithm presented in this thesis evaluates the above sums to a
1
2
specified tolerance with O(N logN) operations. It extends the work of Draghicescu
and Draghicescu [21], who studied two-dimensional vortex sheet dynamics, to the
three-dimensional case. There are three main ingredients for the efficiency of the
algorithm: particle-cluster interactions, a tree-based nested subdivision of space to
construct particle clusters, and adaptive strategies. In this thesis, the algorithm is
used to study vortex ring dynamics with a vortex sheet model.
The layout of the thesis is as follows. Chapter 2 gives an overview of the fluid
dynamics relevant to our work. Vortex sheets are discussed and an overview of vortex
rings is presented. Chapter 3 presents the new algorithm. It is described in detail
and is related to previous work. Chapter 4 presents a validation of the algorithm,
analyzing its convergence, accuracy, and speed-up. Results are presented for the
test case of axisymmetric vortex ring roll-up. Chapter 5 presents simulations for
perturbed vortex rings, elliptical vortex rings, and the collision and reconnection of
two vortex rings, a configuration based on experiments performed by Schatzle [55].
Chapter 6 gives a summary and discusses possible extensions to the work. Appendix
A contains a table of the notation, Appendix B lists identities related to cylindrical
basis vectors and Appendix C presents details from the circular filament analysis
which is performed in Section 2.3.2.
1.2 Contributions of the Thesis
The thesis makes three main contributions. First, the algorithm generalizes pre-
viously developed particle simulation algorithms. The main differences between the
kernel Kδ used here and the ones previously used are that Kδ is not harmonic and
it is a function of three variables. Second, we introduce new forms of adaptivity into
the tree-based subdivision of space. This ensures that the algorithm’s execution time
3
will be small compared to direct summation for a variety of particle distributions.
Third, we apply the algorithm to a three-dimensional smoothed vortex sheet model
to study the dynamics of vortex rings. We show that the model allows vorticity
isosurfaces to reconnect, even though the material surfaces do not.
CHAPTER 2
FLUID DYNAMICS
In this chapter, we present an overview of the fluid dynamics relevant to our work.
In Section 1 we introduce the basic equations of fluid motion. Section 2 contains a
discussion of vortex sheets, including their applications, how we parametrize them,
the behavior they exhibit, and our numerical method for studying them. In Section
3 we introduce vortex rings, as an application of vortex sheet roll-up, and describe
some issues that we are interested in studying such as stability and interactions.
2.1 Governing Equations
The motion of incompressible homogeneous (i.e. constant density) fluid is gov-
erned by the Navier-Stokes equations
ut + (u · ∇)u = −∇p + ν4u, (2.1)
∇ · u = 0, (2.2)
where u(x, t) is the fluid velocity at position x and time t, p(x, t) is the fluid pressure
and ν is the viscosity. Equation (2.1) is the momentum equation, a statement of
Newton’s second law that mass times acceleration is equal to force. Equation (2.2)
is the continuity equation, representing conservation of mass and incompressibility.
4
5
As described by Batchelor [6], in many flows the effect of viscosity is significant only
in a small region of the fluid, for example in boundary layers or thin shear layers.
Away from these regions, the fluid behaves as if it were inviscid. Furthermore, as
demonstrated experimentally by Brown and Roshko for a turbulent mixing layer [9],
the large scale features of the flow do not change for large Reynolds numbers, which
may be considered the inverse of viscosity for our present purposes. So to understand
the dynamics in these portions of the flow, it is useful to study the inviscid limit ν → 0
of the Navier-Stokes equations. This yields the Euler equations
ut + (u · ∇)u = −∇p, (2.3)
∇ · u = 0. (2.4)
In this thesis, we are considering vortex sheets, a particular type of weak solution to
the Euler equations. As mentioned in Chapter 1, a vortex sheet is a surface in the
fluid across which the tangential component of fluid velocity has a jump discontinuity.
When analyzing weak solutions of differential equations, one difficulty that may arise
is a lack of uniqueness of solutions. Thus, one must choose from among the possible
solutions the one that is physically significant. We view the vortex sheet as the zero
viscosity limit of smooth solutions to the Navier-Stokes equations. Delort [17] proved
that the two-dimensional Euler equations with vortex sheet initial data possess global
weak solutions if the vorticity is of one sign. Majda [41] extended the proof to show
that in the inviscid limit, solutions of the Navier-Stokes equations, with vortex sheet
initial data having vorticity of one sign, converge to weak solutions of the Euler
equations. It is not known if these results extend to more general vortex sheet
configurations, much less to three dimensions. Uniqueness of solutions is also not
known. Discussions of these and other analytical aspects of vortex sheets are given
6
by Majda [40] and Caflisch [10]. In the next section, we describe vortex sheets in
more detail.
The above forms of the Navier-Stokes and Euler equations, in terms of velocity
and pressure, are known as primitive variable formulations. An alternative form is in
terms of the vorticity, ω = ∇× u, which measures rotation within the fluid. Taking
the curl of the Euler equation (2.3), we obtain
ωt + (u · ∇)ω = (ω · ∇)u. (2.5)
One advantage of this form is that the pressure has been removed. To close the
system of equations, the velocity is recovered from the vorticity via the Biot-Savart
integral
u(x, t) = − 1
4π
∫
R3
(x − y) × ω(y, t)
|x− y|3 dy. (2.6)
Equation (2.5) describes how the vorticity evolves in time and can be used together
with (2.6) to form a numerical method to solve the Euler equations. Another evo-
lution equation for the vorticity can be obtained in terms of the flow map Φ(x, t),
which denotes the position of the fluid particle at time t that was initially at position
x at time t = 0. The equations defining Φ are
∂Φ
∂t(x, t) = u(Φ(x, t), t) (2.7a)
Φ(x, 0) = x. (2.7b)
The evolution equation for ω in terms of Φ is
ω(Φ(x, t), t) = ∇Φ(x, t) ω(x, 0). (2.8)
Equations (2.6), (2.7) and (2.8) form a closed system which is the basis of the nu-
merical method used in this thesis to study the Euler equations. In the remainder of
this chapter we discuss vortex sheets and then present an overview of vortex rings.
7
Figure 2.1: A vortex sheet modeling parallel shear flow.
2.2 Vortex Sheets
As mentioned above, a vortex sheet is a surface in the fluid across which the
tangential component of the fluid velocity has a jump discontinuity. Away from the
surface, the fluid is assumed to be irrotational, which means that the vorticity is
zero. However, since the velocity has a jump discontinuity across the surface, the
vorticity is a δ-function there. One common application of vortex sheets is as a
model for parallel shear flow in which the transition region between two streams of
fluid is thin, as depicted in Figure 2.1. In this situation, the sheet evolves according
to the velocity given by the Biot-Savart integral (2.6) and the sheet is called a free
vortex sheet. Another application, described by Lamb [36], is to model the movement
of a solid body through irrotational inviscid fluid by placing a vortex sheet on the
body’s boundary. In this case, the sheet is called a bound vortex sheet, since it is
bound to the body’s surface. Our application of vortex sheets, described in the next
section, is a model of the formation process of a vortex ring. A method of generating
a vortex ring is to place a solid circular disk in a fluid, give it an impulse along its
axis and then dissolve the disk away. This process can be modeled by considering a
bound vortex sheet on the solid disk. When the disk is dissolved away, a free vortex
sheet remains in the fluid and rolls up into a vortex ring. It is this free sheet that is
represented in our computations.
8
To compute the induced velocity of a vortex sheet, it is necessary to consider
the Biot-Savart integral (2.6) in the case where the vorticity is a δ-function on a
surface. Before proceeding, we introduce some additional notation. Away from the
vortex sheet, the fluid is irrotational, so a velocity potential φ exists. Thus, for x not
on the sheet, u(x, t) = ∇φ(x, t). The limit of the fluid velocity exists as the sheet
is approached from either side. Choosing an orientation for the sheet, let u+ and
u− denote the one-sided limits of u. Similarly, let φ+ and φ− denote the one-sided
limits of φ. The jumps in u and φ across the sheet are denoted [u] = u+ − u− and
[φ] = φ+−φ− respectively. The jump in velocity is tangential to the sheet, so we have
n · [u] = 0, where n denotes a unit vector normal to the sheet. One can show that
the curl of a velocity field which has a tangential jump discontinuity across a surface
and is otherwise irrotational is a surface δ-function with vector-valued strength
ω = n × [u] = n × [∇φ]. (2.9)
Although it is a slight abuse of notation and terminology, we will refer to this vector-
valued strength as the vorticity itself. A consequence of this relationship is that the
vorticity ω is parallel to the surface and perpendicular to [∇φ], a result we will use
later. The Biot-Savart integral is interpreted with this singular vorticity, leading to
the following surface integral for the induced velocity :
u(x, t) =∫
SK(x,y) × ω(y, t) dSy, (2.10)
where S is the sheet, x is a point not on the sheet,
K(x,y) = − 1
4π
x − y
|x− y|3 (2.11)
is the Biot-Savart kernel, ω(y, t) is given by (2.9) and dSy is the area element of S
at y. For x on the sheet, the integral in (2.10) is interpreted as a principal value
integral, because it diverges otherwise.
9
In the next subsection, we describe the Lagrangian parametrization of the vortex
sheet which is the basis of our numerical method. Then we discuss the singular
behavior that vortex sheets exhibit, which leads us to desingularize their motion in
order to obtain a tractable model. Finally, the discretization of the equations is
described.
2.2.1 Parametrization
For computations, it is advantageous to use a Lagrangian parametrization of
the vortex sheet. We do this by representing the sheet as a collection of vortex
lines, parametrizing across them with circulation. The Lagrangian parametrization
was presented by Caflisch [10] and Kaneda [28]. The sheet’s position is denoted
y(λ1, λ2, t), where λ1 and λ2 are Lagrangian parameters. The induced velocity field
at a point x on the sheet is
u(x, t) = PV∫∫
K(x,y(λ1, λ2, t)) × ω(λ1, λ2, t)
∣∣∣∣∣∂y
∂λ1× ∂y
∂λ2
∣∣∣∣∣ dλ1 dλ2,
(2.12)
where the PV denotes the principal value integral. Caflisch [10] and Kaneda [28]
showed that the jump [φ(y(λ1, λ2, t))] is independent of time. The demonstration
was based on the fact that the fluid pressure is continuous across the vortex sheet,
which follows from conservation of momentum. Thus, we may write
φJ(λ1, λ2) = [φ(y(λ1, λ2, t))]. (2.13)
Then, using (2.9) and some algebraic manipulations, they derived the identity
ω(λ1, λ2, t)
∣∣∣∣∣∂y
∂λ1× ∂y
∂λ2
∣∣∣∣∣ =∂φJ
∂λ1
∂y
∂λ2− ∂φJ
∂λ2
∂y
∂λ1. (2.14)
The specific choice of λ1 and λ2 is made to simplify the right-hand side of this
equation. We choose λ1 to be the circulation between a fixed reference point on the
10
���
������
Figure 2.2: Vortex lines and circulation. λ1, λ2 : Lagrangian parameters, y0 : refer-ence point, y : point on surface, C : curve for circulation integral.
sheet and other points on the sheet and λ2 to be a parameter along curves of constant
circulation, as shown in Figure 2.2. We describe λ2 first, in terms of vorticity.
Vortex lines are integral curves of the vorticity. Geometrically, they are curves
which are parallel to the vorticity field ω. We choose λ2 so that at time t = 0, λ2 is
a parameter along vortex lines, ensuring that ∂y
∂λ2is parallel to ω(λ1, λ2). It follows
that
∂φJ
∂λ2
=∂
∂λ2
(φ+(y, 0) − φ−(y, 0)
)(2.15)
= ∇φ+(y, 0) · ∂y∂λ2
−∇φ−(y, 0) · ∂y∂λ2
(2.16)
= [∇φ(y, 0)] · ∂y∂λ2
= 0, (2.17)
where the last equality is due to the fact that ∂y
∂λ2is parallel to ω and [∇φ] is
perpendicular to ω, as seen from (2.9). For such a choice of λ2, the Biot-Savart
integral (2.12) reduces to
u(x, t) = PV∫∫
K(x,y(λ1, λ2, t)) ×∂y
∂λ2(λ1, λ2, t)
∂φJ
∂λ1dλ1 dλ2.
(2.18)
For our vortex ring application, the vortex lines are closed curves. We choose λ2
to range from 0 to 2π, so the vortex lines are 2π-periodic functions of λ2. In the
11
computations, λ2 is chosen at t = 0 to be a linear rescaling of arclength. Note that
this linear relationship does not hold for t > 0, because the vortex lines stretch
non-uniformly as the sheet evolves.
As mentioned above, λ1 is chosen to be the circulation between a fixed reference
point on the sheet and other points on the sheet. We fix a material point y0 on the
sheet. For any point y on the sheet, λ1(y) is the circulation
λ1(y) =∫
Cu · ds, (2.19)
where C is a closed curve meeting the sheet at y0 and y, and ds is a line element
of arclength, as shown in Figure 2.2. Kelvin’s circulation theorem states that the
circulation around a set of vortex lines moving with the flow does not change in
time, ensuring that λ1 is a Lagrangian parameter. It follows from the definition that
λ1 = φJ + c, where c is a constant which depends only on the reference point y0.
Thus, ∂φJ
∂λ1= 1 and the Biot-Savart integral (2.18) reduces to
u(x, t) = PV∫∫
K(x,y(λ1, λ2, t)) ×∂y
∂λ2(λ1, λ2, t) dλ1dλ2. (2.20)
This parametrization and the resulting form of the Biot-Savart integral is a general-
ization to three dimensions of the Birkhoff-Rott equation for the motion of a vortex
sheet in two dimensions [8]. The circulation distribution for a vortex sheet depends
on the initial condition of the specific problem being studied. We will describe it
later when we discuss the application to vortex rings.
2.2.2 Desingularization
Vortex sheets exhibit behavior that smooth shear layers do not. For example,
vortex sheet instabilities have arbitrarily large growth rates, the sheets form curva-
ture singularities [46], and they roll up into infinite spirals [48]. These features make
the study of vortex sheets difficult both theoretically and numerically.
12
As an example of the numerical difficulties, consider the motion of a flat vortex
sheet. When a small amplitude perturbation is introduced to the sheet, it is am-
plified at a rate proportional to the spatial wavenumber of the perturbation. This
is known as Kelvin-Helmholtz instability. In a numerical simulation, roundoff error
introduces a perturbation to the sheet whose wavenumber is inversely proportional
to the spacing of the points representing the sheet. Thus, when the computational
mesh is refined, the wavenumber of the round-off error perturbation increases, the
perturbation is amplified more rapidly and the computations become inaccurate.
One technique to overcome this, introduced by Krasny [34], is to filter the sheet’s
position at each time step. With this technique, it is possible to extend computations
to longer times. However, the sheet still develops singularities in finite time. After
the singularity forms, it is not possible to use the filter and round-off error grows,
overwhelming the computations. Another technique, first proposed by Chorin and
Bernard [15], is to desingularize the Biot-Savart kernel K(x,y). We follow this
approach, using a desingularization analogous to the one used by Krasny [33] for
two-dimensional vortex sheet roll-up. Our smoothed three-dimensional Biot-Savart
kernel is
Kδ(x,y) = − 1
4π
x − y
(|x − y|2 + δ2)3/2, (2.21)
where δ > 0 is the smoothing parameter. We replace the singular Biot-Savart inte-
gral (2.20) with
u(x, t) =∫∫
Kδ(x,y(λ1, λ2, t)) ×∂y
∂λ2(λ1, λ2, t) dλ1 dλ2. (2.22)
This kernel was first introduced by Rosenhead [51] in the study of vortex dynamics
in the wake behind a cylinder. It is related to the Plummer potential which is
used in astrophysics to model the distribution of matter in a galaxy. Note that
13
as δ → 0, Kδ → K. The introduction of δ smoothes the kernel and removes its
singularity at the origin. This makes it unnecessary to treat the integral in (2.22)
as a principal value integral. A consequence of the smoothing is that the kernel is
no longer harmonic, which is one of the main reasons for developing the new fast
computational method to be described in Chapter 3. Note that it is not possible
to desingularize the kernel in such a way that the result is bounded and harmonic,
which follows from the maximum principle.
The strategy for computing vortex sheet roll-up is to solve the smoothed equation
for fixed δ > 0 and to investigate the behavior of these solutions as δ → 0. This is
analogous to finding weak solutions of the Euler equations by taking the zero viscosity
limit of smooth solutions of the Navier-Stokes equations. This analogy is supported
by the work of Tryggvason, Dahm and Sbieh [59] who performed computations for the
δ → 0 limit of a two-dimensional vortex sheet and the ν → 0 limit of a corresponding
Navier-Stokes computation. They found that the large scale features of a δ > 0
computation agree well with the features of a ν > 0 computation, and that the
δ → 0 limit and the ν → 0 limit coincide. Liu and Xin [39] have shown that the
δ → 0 limit of solutions to the two-dimensional vortex-blob equations is a weak
solution of the Euler equations when the vorticity is of one sign. It is not known if
such results hold in three dimensions.
2.2.3 Discretization
In this subsection, we describe how the sheet’s position y(λ1, λ2, t) and veloc-
ity (2.22) are discretized. The assumptions made about the parametrization are that
λ1 measures circulation across the vortex lines and 0 ≤ λ2 ≤ 2π parametrizes along
the vortex lines. We discretize the parameter space as shown in Figure 2.3. We first
14
� �
���
���
� �
Figure 2.3: Discretization of parameter space and a circular disk. λ1, λ2 : Lagrangianparameters. λ1 is a radial parameter and λ2 is a parameter around thedisk.
discretize λ1 with a uniform grid. Each λ1 value corresponds to a vortex line which
is then discretized in λ2 with a grid that is uniform with respect to arc-length in
physical space (at t = 0). Note that there are more points on longer vortex lines,
which leads to λ1 and λ2 being treated asymmetrically. This is done to ensure spa-
tial resolution and accuracy of partial derivative computations along the vortex lines.
With these points xi(t), we discretize the Biot-Savart integral (2.22) first in λ1 with
the trapezoid rule and then in λ2, also with the trapezoid rule. The ∂y
∂λ2term in the
integrand is approximated with a 2nd order centered difference. This results in a
system of ordinary differential equations
dxi
dt=
N∑
j=1
Kδ(xi,xj) × wj, (2.23)
where xi(t), xj(t) are points on the sheet and
wj = Dλ2(xj) ∆λ1 ∆λ2 (2.24)
15
���
new particle
particles for cubic interpolant
Figure 2.4: Particle insertion along a vortex line. given data (•), new particle (◦).
is the product of the finite difference Dλ2 along a vortex line and the integration
weights ∆λ1 and ∆λ2. The integration weights are adjusted appropriately at the λ
boundaries for the trapezoid rules. From here on, we refer to the xj as particles.
The system of differential equations (2.23) is solved with a 4th order Runge-Kutta
method.
Computing the right-hand side of (2.23) by direct summation requires O(N 2)
operations, where N is the number of particles discretizing the vortex sheet. In
Chapter 3, we present an algorithm which computes the sums in (2.23) more rapidly,
to within a specified tolerance.
As the sheet evolves, the vortex lines can individually stretch and can also sepa-
rate from each other. This causes a loss of resolution which is overcome by inserting
new particles along the lines and by inserting new lines. The first case corresponds
to refining in λ2 for fixed λ1 and the second case corresponds to refining in λ1 glob-
ally in λ2. The procedure for inserting a new point along a vortex line is depicted
in Figure 2.4. The λ2 coordinate of the new particle is set to be the average of
the separated particles’ coordinates. The position of the new particle is computed
with a cubic polynomial in λ2 which interpolates the positions of the four particles
surrounding the new particle, two on each side.
The procedure for adding a new vortex line when adjacent lines become separated
16
� �
���
Figure 2.5: Vortex line insertion. given data (•), new particle (◦).
is analogous, and is depicted in Figure 2.5. The λ1 coordinate of the new line is
the average of the separated lines’ coordinates. The particle positions on the new
line are generated as follows. The first step is to select the λ2 values where the
particles will be placed. We do this by simply choosing the λ2 values of an adjacent
line. The reasoning behind this is that once refinement along vortex lines takes
place, the λ2 values on the adjacent lines yield good spatial resolution along the new
line. To compute a particle position for each of these λ2 values, we first generate a
corresponding λ2 particle position on each of the surrounding four vortex lines, two
on each side. If one of these lines does not have a particle at that λ2 value, then
one is generated with a cubic interpolant as described above for particle insertion
along a line. The λ2 particle position on the new vortex line is then computed by
interpolating these four particle positions with a cubic polynomial in λ1.
In our computations we make a change of variable λ1 = λ1(α). This will ensure
accuracy by placing more vortex lines in regions where the circulation is varying
rapidly. Since λ1 is a Lagrangian parameter, α is one as well. With this change of
17
vorticity
propagation
velocity
Figure 2.6: Propagating vortex ring.
variable, the smoothed velocity induced by the sheet is
u(x, t) =∫∫
Kδ(x,y(α, λ2, t)) ×∂y
∂λ2
(α, λ2, t)λ′1(α) dαdλ2. (2.25)
In the computations, λ′1(α) is computed analytically at t = 0. When new vortex
lines are inserted, the values of λ′1(α) are obtained using a cubic interpolant of the
values of λ′1(α) at the surrounding lines.
2.3 Vortex Rings
A vortex ring is a flow in which vorticity is concentrated and directed around a
torus, as depicted in Figure 2.6. The vorticity distribution causes the fluid to rotate
around the torus and the ring propagates. In this thesis, we use a desingularized
vortex sheet model to investigate vortex ring dynamics. In particular, we are inter-
ested in the formation process, stability properties, and interactions between rings.
We review each of these topics in the following subsections.
18
2.3.1 Formation
There are various methods of creating a vortex ring, each having advantages and
disadvantages for the experimentalist or numerical analyst. One technique, described
by Thomson and Newall [58], is to release a drop of colored liquid into a container of
water. As the drop falls through the water, it rolls up around the edges and forms a
descending vortex ring. This experiment can be performed with a simple apparatus,
but it is difficult to simulate numerically due to the collision of the fluid boundaries
and the subsequent change in topology.
Another method commonly used is to eject fluid from a circular nozzle. A shear
layer separates at the opening and rolls up into a vortex ring. As described in Shariff
and Leonard’s review [56], this process can be modeled using slug flow or self-similar
vortex sheet roll-up. Another model, presented by Nitsche and Krasny [47], involves
the roll-up of an axisymmetric vortex sheet which is not assumed to be self-similar.
In their numerical computations, the sheet was desingularized in a manner similar to
the method described above and they modeled the shedding of circulation at the edge
of the nozzle. Their results agreed well with experiments performed by Didden [20].
The vortex sheet model used in this thesis is an extension of their work to fully
three-dimensional flow.
A simple model for vortex ring formation described by Taylor [57], is to supply
an impulse to a flat circular disk along its axis of symmetry and to then dissolve the
disk. When the disk is given an impulse, the velocity field in the fluid is induced
by a bound vortex sheet on the surface of the disk. When the disk is dissolved, the
sheet remains in the fluid and rolls up into a vortex ring. This method is more of
a thought exercise and is not practical for experiments, but it is the one on which
our computations are based. One reason for selecting this flow for our computations
19
is the absence of solid boundaries. The circulation distribution on the initially flat
sheet is given by
λ1 =√
1 − r2, (2.26)
where r is the distance from the center of the disk. The velocity field induced by
this circulation distribution is balanced so that the disk propagates. Note that in
Cartesian coordinates, the circulation has a square-root singularity at the boundary
of the disk. This implies that the jump in velocity becomes infinite at the edge.
When the smoothing effect of δ is introduced, the singularity is removed and the
balance in velocity is lost, resulting in the disk rolling up into a ring. This effect
occurs in physical flow, although the smoothing is due to viscosity.
In terms of the vortex sheet parametrization, the disk is given by
y(λ1, λ2) = (√
1 − λ21 cos λ2,
√1 − λ2
1 sinλ2, 0), (2.27)
where 0 ≤ λ1 ≤ 1 and 0 ≤ λ2 ≤ 2π. For our α reparametrization, we use λ1 = cosα,
which yields
y(α, λ2) = (sinα cos λ2, sinα sin λ2, 0), (2.28)
where 0 ≤ α ≤ π/2 and 0 ≤ λ2 ≤ 2π. The λ′1(α) term which arises in (2.25) is given
by λ′1(α) = − sinα.
2.3.2 Stability
Since our model for vortex rings consists of a collection of circular vortex lines,
we consider first the stability of a single circular vortex line, referred to as a vortex
filament. So let y(λ, t) denote the position of a vortex filament in three dimensions,
where λ is a Lagrangian parameter along the filament, 0 ≤ λ ≤ 2π and y(0, t) =
20
y(2π, t). The filament evolves according to the equation
∂y
∂t(λ, t) =
−1
4π
∫ 2π
0Kδ(y(λ, t),y(λ, t)) × ∂y
∂λ(λ, t) dλ, (2.29)
where Kδ is given in (2.21). A propagating circular filament is a steady solution of
(2.29) and we are interested in its stability properties. It is convenient to perform
the analysis in cylindrical coordinates, so let (r, θ, z) be cylindrical coordinates, as
shown in Figure 2.7. Also shown in the figure are the basis vectors er(θ), eθ(θ), and
ez associated with the point (r, θ, z). Identities pertaining to this basis are listed in
Appendix B. Suppose that the filament at time t = 0 is given by
y(λ, 0) = (R, λ, 0). (2.30)
Substituting into (2.29), it can be shown that the filament propagates with velocity
U =ez
4πR
∫ 2π
0
1 − cos λ(2(1 − cos λ) + (δ/R)2
)3/2dλ. (2.31)
The derivation is presented in Appendix C.
It is worthwhile to point out the effect of the smoothing parameter δ. If δ were
equal to zero, the filament velocity would be
U =ez
8πR
∫ 2π
0
1
(2(1 − cos λ))1/2dλ, (2.32)
which is a divergent integral. The integrand is positive, so considering the integral as
a principal value integral will not result in a finite value. The interpretation of this
equation is that a circular vortex line propagates with infinite velocity. The problem
is that in an actual fluid, even when the vorticity is concentrated into a small region,
the vorticity distribution does not have line delta functions. The desingularization
that we use is one approach to overcome this difficulty, and was first introduced
by Rosenhead [51] in the study of vortex dynamics in the wake behind a cylinder.
21
�
���
�! #"%$&"%')(
*,+.-!/�0
1)243!5�6
7
8
Figure 2.7: Cylindrical coordinates and basis vectors.
Intuitively, the introduction of δ into the kernel spreads the vorticity associated with
the vortex line over a region around the line with radius δ. It is this effect that leads
us to call the lines filaments. Another approach to overcoming this difficulty is to
cut off the integral in a small neighborhood of the point λ = 0, thereby removing
the singularity. This technique was used by Crow [16] and Moore [45] in their study
of the stability properties of the vortex pair trailing from an airplane wing.
We now analyze the linear stability of the propagating circular vortex filament
y(λ, t) = (R, λ, Ut), (2.33)
where
U =1
4πR
∫ 2π
0
1 − cos λ(2(1 − cos λ) + (δ/R)2
)3/2dλ. (2.34)
We introduce a perturbation p(λ, t) to the solution y(λ, t), which we write in terms
22
of the cylindrical basis at (R, λ, Ut)
p(λ, t) = pr(λ, t)er(λ) + pθ(λ, t)eθ(λ) + pz(λ, t)ez. (2.35)
We substitute y(λ, t)+p(λ, t) into (2.29), and obtain a system of integro-differential
equations for the scalars pr(λ, t), pλ(λ, t), and pz(λ, t). Then we linearize these
equations about p(λ, t) = 0, which is reasonable under the assumption that |p(λ, t)|
is small in amplitude. The resulting linearized equations (C.18) appear in Appendix
C for reference. If the equations are written in the abstract form ∂∂t
p = L(p), then it
can be shown that using the Fourier basis for p(λ) diagonalizes the operator L. So
we may restrict attention to a single mode of the Fourier expansion for p(λ). Thus,
we fix an integer k and substitute the expression
p(λ, t) = eikλ+ωt (Arer(λ) + Aθeθ(λ) + Azez) (2.36)
into (C.18) and after some simplifications obtain the system of linear equations
ω 0 −I1
0 ω −iI2
−I3 0 ω
Ar
Aθ
Az
=
0
0
0
, (2.37)
where the Ij are the integrals
I1 =1
4πR2
∫ 2π
0
cos λ(1 − cos kλ) − k sin λ sin kλ(2(1 − cos λ) + (δ/R)2
)3/2dλ, (2.38)
I2 =1
4πR2
∫ 2π
0
k(1 − cos λ) cos kλ− sin λ sin kλ(2(1 − cos λ) + (δ/R)2
)3/2dλ, (2.39)
I3 =1
4πR2
∫ 2π
0
k sin λ sin kλ+ 2 cos kλ− cos λ(1 + cos kλ)(2(1 − cos λ) + (δ/R)2
)3/2
− 3(1 − cos λ)2(1 + cos kλ)(2(1 − cos λ) + (δ/R)2
)5/2dλ.
(2.40)
23
The unbalanced form of (2.37) is due to the fact that the integral which would have
appeared in the (3, 2) entry of the matrix is zero. There are non-zero solutions of
the form (2.36) only if the matrix in (2.37) is singular, which is true only if the
determinant of the matrix is zero,
0 = ω(ω2 − I1I3). (2.41)
Thus, we have a solution only if
ω = 0 or ω2 = I1I3. (2.42)
This relationship between k and ω, for fixed R and δ, is called a dispersion rela-
tion. For each of these values of ω, there is a corresponding (Ar, Aθ, Az) solution to
(2.37). Note that the dispersion relation does not depend on I2, though the solution
(Ar, Aθ, Az) does. The solution y(λ, t) is linearly stable or unstable with respect to
the perturbation p(λ, t) according to whether the real part of ω is negative or positive
respectively, and if the real part of ω is zero, then y(λ, t) is linearly neutrally stable
with respect to the perturbation p(λ, t). From the definitions (2.38) and (2.40), we
see that the product I1I3 is real, so the stability of y(λ, t) depends upon the sign
of I1I3. If I1I3 is negative, then y(λ, t) is linearly neutrally stable. However, if I1I3
is positive, then there exist solutions p(λ, t) which grow and solutions p(λ, t) which
decay, so y(λ, t) is unstable in general. An observation that can be made from the
definitions of the integrals I1 and I3 is that for fixed k and δ/R, ω depends linearly
on R−2. In particular, the sign of ω2 will be independent of R. Thus, whether or not
a filament is unstable with respect to a perturbation depends only on k and δ/R.
Figure 2.8 contains a plot of sign(ω2)|ω| as a function of k, for R = 1 and δ = 0.18,
0.15, 0.12, 0.09, 0.06. The sign term multiplying |ω| is chosen so that positive and
negative values correspond to unstable and neutrally stable modes respectively. The
24
0 5 10 15 20 25−7
−6
−5
−4
−3
−2
−1
0
1
k
sign
(ω2 ) |
ω|
Figure 2.8: Dispersion relation. sign(ω2)|ω| vs. k. R = 1, δ = 0.18, 0.15, 0.12, 0.09,0.06. Going left to right, the peaks correspond to decreasing δ.
values of the integrals were computed numerically with Maple. For values of k larger
than those depicted, sign(ω2)|ω| continues to decrease, leveling off at a value which
depends upon δ and R.
For a given R and δ, ω2 depends on k in the following qualitative manner. For
k = 0 and 1, ω2 = 0. As k increases from 1, ω2 first decreases and then increases,
following a parabolic shaped curve. After reaching a local maximum, ω2 then de-
creases, eventually leveling off. For some values of δ/R, the value of ω at the local
maximum is positive, and for others it is not. Recall that the filament is unstable
when the peak is positive and is neutrally stable otherwise. More extensive compu-
tations than those depicted in the figure do not reveal an obvious pattern for when
the mode at this peak is unstable. Also, for some values, such as δ/R = 0.18 and
25
0.15, there is more than one k value for which ω2 is positive. As δ decreases, the
wavenumber where the peak is located increases, and more extensive computations
suggest that the wavenumber grows like O(δ−1) as δ → 0. The linear stability analy-
sis assumes that the perturbation to the filament is small compared to δ, the nominal
size of the filament’s core. However, the unstable modes, when they exist, have a
wavenumber proportional to δ−1, which implies that these modes have spatial oscil-
lations with wavelengths on the order of the core size. Thus, as these oscillations
grow, they quickly leave the realm where the linear stability analysis is valid. So it
is not clear how to interpret the results physically. These results are qualitatively
similar to those of Widnall and Sullivan’s [62] study of vortex ring stability. They
used a thin filament approximation as a model for the vortex ring and overcame
the divergence of the Biot-Savart integral (2.29) by using an integral cut-off and an
asymptotic matching procedure to choose the location of the cut-off. They found
that for certain intervals of core sizes, there is a narrow band of modes which are un-
stable. Rings with core size between these intervals are neutrally stable. As the core
size decreases, the band of unstable modes narrows. The wavenumber that the band
is centered around grows like a−1, where a is the size of the core. They compared
their theoretical predictions with experimental results and found a fair agreement
for their prediction for the wavenumber of the unstable mode and good agreement
for the amplification rate.
One obstacle to generalizing the vortex filament stability analysis to a vortex
ring is that the core structure of the ring is not generally known. Thus, one needs to
provide a model for the core structure. For instance, in their work mentioned above,
Widnall and Sullivan [62] used a constant core radius model and a constant local
volume model. Widnall, Bliss, and Tsai [61] modeled the vorticity in the core both as
26
being constant and having a continuous quartic profile across the core, peaked at the
center and zero at the boundary. These later models were better able to predict the
wavenumber of the unstable mode than the model used in [62]. Saffman [52], using a
vorticity distribution which includes viscous effects, was able to predict the unstable
wavenumber found in the experiments of Krutzsch [35] and Maxworthy [42, 43].
Another model for the core vorticity distribution is a scaling of the third-order
Gaussian exp(−r3), which was used in simulations by Knio and Ghoniem [32]. In
their study, they modeled the vortex ring as a collection of smooth vortex filaments,
as we do. The principle differences between their model and ours is the initial
placement of the filaments, the smooth kernel that is used, and the discretization.
Their filaments are initialized to form a solid torus and the filament strengths are
chosen to approximate the vorticity distribution. They smooth the Biot-Savart kernel
by convolving it with a third-order Gaussian. Their computational results agree well
with the analytical predictions of Widnall, Bliss and Tsai [61].
Another technique for generating a vorticity distribution in the ring’s core is to
numerically solve the differential equations for an exactly propagating ring. The
technique was used by Lifschitz, Suters, and Beale [38] in their study of the stabil-
ity of axisymmetric vortex rings with swirl. In their study, they compared growth
rate predictions from short wavelength asymptotics with computations using a vor-
tex filament model of the ring. In their computations, the Biot-Savart kernel was
smoothed by convolving it with a sixth degree piecewise polynomial having compact
support. Their computations agreed reasonably well with the analytical predictions,
the computational growth rates being consistently 1/3 to 1/2 the predicted maximum
growth rates.
27
Figure 2.9: Colliding vortex rings.
2.3.3 Interactions
The type of vortex ring interaction that we are interested in is the collision de-
picted in Figure 2.9, a configuration studied experimentally by Schatzle [55]. The
resulting collision exhibits vortex ring merger and has been studied experimentally,
theoretically and numerically. Near the collision, oppositely oriented vortex filaments
collide and merge. Our interest in the ring configuration is to find out if the vortex
sheet model for vortex rings can capture such complex dynamics, despite the various
simplifying assumptions built into the model.
The regions of the rings which approach closely contain oppositely oriented vortic-
ity. Saffman [53] proposed a model to describe the dynamics of vortex reconnection.
As the rings meet, viscosity causes the opposite vorticity to cancel. This decrease in
vorticity causes that region of each ring to stretch away from the point of contact,
due to a local increase in pressure. Thus, the fluid is pushed away from the region of
contact and it appears that the rings have connected. Saffman [53] modeled this pro-
cess and the predictions for time scales and strain rates agreed reasonably well with
28
Schatzle’s experiments [55]. Various researchers have studied the vortex reconnection
problem numerically. Anderson and Greengard [1] used a Lagrangian method and
discretized the rings as a collection of vortex filaments. They smoothed the Biot-
Savart kernel by convolving it with a characteristic function and used a constant core
vorticity model for the rings. They were able to compute the early stages of the ring
merger and their results agree qualitatively with Schatzle’s experiments. Numerical
simulations performed by Aref and Zawadzki [4] and Winckelmans [63] reproduced
well the vortex ring collision and reconnection. Using a Eulerian-Lagrangian vortex-
in-cell code, they reproduced the ring merger and subsequent reconnection into two
new rings, which begin to pinch off. Kida, Takaoka and Hussain [30, 31], using an
Eulerian spectral method to study the vortex ring merger problem, were able to com-
pute to later times in the sequence. However, in their computations, the rings remain
connected after the reconnection, which conflicts with experimental observations of
ring separation. This disparity was attributed to the fact that the experimental re-
sults are visualized with passive scalar transport, which is different from vorticity
transport. The experiments do not necessarily show where the vorticity is large, since
it may be amplified by the vortex stretching term in the Navier-Stokes equations.
One reason for interest in this ring configuration related to singularity formation in
solutions to the Euler equations. As the rings begin to collide, the oppositely oriented
vortex filaments that approach each other begin to stretch. In an inviscid flow, this
stretching intensifies the vorticity, which is a process that plays an important part in
singularity formation. For instance, interacting vortex tube computations by Pumir
and Kerr [49] show significant distortion in the core of the colliding rings and vortex
filaments computations by Pumir and Siggia [50] for other configurations inidicate
the possibility of singularity formation.
CHAPTER 3
FAST METHODS FOR PARTICLE
SIMULATIONS
As mentioned previously, evaluating the sums in (2.23) by direct summation,
a technique also referred to as the particle-particle (PP) method, requires O(N 2)
operations. For large values of N , the time required to perform these operations is
excessively large. Two approaches that have been developed in the past to overcome
this difficulty are mesh and tree codes. They achieve their efficiency by computing
approximations to the exact particle interactions. This is in contrast to algorithms
such as the fast Fourier transform, which achieve efficiency by taking advantage of
exact algebraic manipulations. Thus, performance is not the only issue to consider
when examining mesh and tree codes, for the execution time typically depends on
the desired accuracy. A brief description of mesh codes is given before proceeding to
tree codes, the approach that this thesis follows.
3.1 Mesh Codes
Efficiency is gained in a mesh code by using the fact that elliptic equations can
be solved rapidly on meshes. This is done either by using iterative methods such as
successive overrelaxation, conjugate gradient, or multigrid, or direct methods based
29
30
on cyclic reduction or the fast Fourier transform. A comprehensive reference for this
material is the book by Hockney and Eastwood [27].
Though mesh codes apply to more general settings, I will describe them as ap-
plied to problems in astrophysics. In this setting, the quantities in a simulation
are star positions xi(t) and masses mi. The acceleration of the ith star due to the
gravitational influence of the other stars is given by
ai = GN∑
j=1, j 6=i
mjK(xi,xj), (3.1)
where
K(xi,xj) = − xi − xj
|xi − xj|3. (3.2)
Define the mass density ρ and gravitational potential Φ by
ρ =N∑
j=1
mjδ(x − xj), (3.3)
Φ(x) = GN∑
j=1
mjφ(x − xj), (3.4)
where φ(z) = |z|−1. Then from the identities
K(xi,xj) = ∇φ(xi − xj), (3.5)
∇2φ(z) = 4πδ(z), (3.6)
it follows that
∇2Φ(x) = 4πGρ(x), (3.7)
ai = ∇Φ(xi). (3.8)
The particle-mesh (PM) method superimposes a fixed mesh over the particles and
uses the auxiliary functions ρ and Φ to compute ai as follows :
31
1. Assign a mass function ρ to the mesh from the xj and mi.
2. Solve a discretized form of the Poisson equation (3.7) on the mesh.
3. Use (3.8) to compute accelerations on the mesh.
4. Interpolate accelerations from the mesh to the star positions xj.
There are various techniques for implementing each step mentioned above. The
main drawback of this method is that the accuracy is determined by the mesh size.
When the grid is refined to improve the accuracy, the execution time increases. An
alternative to the PM method is the particle-particle/particle-mesh (P3M) method,
which combines the PP and PM methods. Interactions between nearby particles are
computed with the PP method, and the rest of the interactions are computed with
the PM method. So the functions being approximated with the mesh are smoother,
resulting in a smaller error than the PM method produces with the same mesh. A
full discussion of these methods is beyond the scope of this thesis and the interested
reader is directed to Hockney and Eastwood’s book [27] for more details.
3.2 Tree Codes
There are two main ingredients for achieving efficiency in a tree code, particle-
cluster interactions and a nested subdivision of space which is used to construct the
particle clusters. A particle-cluster interaction is used to rapidly compute the influ-
ence of a particle cluster on a single target particle. This is done by approximating
the cumulative influence of the particles in the cluster on the target particle with a
simplified expression. Once a preprocessing phase is performed, the expression can
be evaluated for multiple target particles with an operation count independent of
32
the number of particles in the cluster. We will see below that particle-cluster inter-
actions are only performed for particles and clusters which are separated from each
other. Thus, the approximation used is referred to as a far-field approximation. The
nested subdivision of space, which is used to construct the particle clusters, has a
natural tree structure. The objective behind the subdivision of space is to generate
particle-cluster interactions in which the particle is far from the cluster, relative to
the cluster’s size. The combination of these two ingredients leads to an algorithm
whose asymptotic operation count is O(N logN).
Two early examples of tree code algorithms are due to Appel [3] and Barnes
and Hut [5], who used the algorithms for problems in astrophysics. In these algo-
rithms, particle-cluster interactions were performed by approximating the cluster as
a single particle located at the cluster’s center of mass. A drawback of this approxi-
mation is that it has limited accuracy. The Fast Multipole Method of Greengard and
Rokhlin [24, 25] overcame this obstacle by using a series expansion to approximate
particle-cluster interactions to any specified tolerance. They also introduced cluster-
cluster interactions by expanding the far-field approximation into a local near-field
expansion for rapid evaluation at multiple target points. The series expansions used
in [24, 25] are Laurent series in two space dimensions and spherical harmonic ex-
pansions in three dimensions. Van Dommelen and Rundensteiner [60] employed a
similar series approach to study two-dimensional fluid flow around a cylinder which
was modeled with point vortices and a random walk simulation of diffusion effects.
They used a Laurent series to approximate particle-cluster interactions, but they
did not use cluster-cluster interactions. This simplifies the algorithm and results
in smaller memory requirements, though for similar error tolerances, their ratio of
improvement in execution time versus direct summation is less than Greengard and
33
Rokhlin’s two-dimensional results. Another tree code for two- and three-dimensional
problems, due to Anderson [2] does not use series expansions. Instead, the approxi-
mations for particle-cluster and cluster-cluster interactions are based on the Poisson
integral formula for the solution of Laplace’s equation in the interior of a circle or
sphere. For two-dimensional problems, the ratio of improvement in execution time
for Anderson’s algorithm is between Van Dommelen and Rundensteiner’s and Green-
gard and Rokhlin’s.
All of these expansions and approximations are appropriate when the interaction
kernel is harmonic, such as the Newtonian potential of electrostatic and gravitational
interactions, but they are unsuitable for non-harmonic kernels, such as the kernel Kδ
under consideration in this thesis. This is because they rely on the harmonicity of
the kernel to ensure convergence. An expansion using Cartesian Taylor series, an
idea first proposed by Zhao [65], can be used to overcome this constraint. Zhao used
Taylor series for simulations with the Newtonian potential, a harmonic function, in
three dimensions. The motivation was to generalize Greengard and Rokhlin’s [24]
two-dimensional complex Taylor series expansion to the three-dimensional setting.
The first application of this expansion to particle simulations with a non-harmonic
kernel was by Draghicescu and Draghicescu [21], who computed the evolution of
a desingularized vortex sheet in two space dimensions. An important contribution
of their work is the introduction of recurrences to rapidly compute the expansion
coefficients. One contribution of this thesis is to generalize this approach to the three-
dimensional vortex blob kernel. Our algorithm and the algorithm of Draghicescu and
Draghicescu’s are like van Dommelen and Rundensteiner’s [60], in that they do not
use cluster-cluster interactions. The reasoning for this is that converting a far-field
expansion into a near-field expansion for Taylor series is a time consuming procedure,
34
requiring O(p3) and O(p4) operations in two and three dimensions respectively, where
p is the order of the Taylor series being used. A recent development concerning this
issue is a new version of the Fast Multipole Method for the Newtonian potential by
Greengard and Rokhlin [26]. They speed up the far-field to near-field conversion by
using an intermediate step of converting the expansion into plane wave expansions
using Bessel functions. It is a matter for future work to see if this technique can be
extended to non-harmonic kernels.
Salmon and Warren [54] discussed using Taylor series for the Newtonian po-
tential and the non-harmonic Plummer potential, although their recurrences and
expansions were used only for the Newtonian potential. Using low-order methods
and error bounds, they were able to improve upon the performance of previous low-
order method of Barnes and Hut [5]. Winckelmans et. al. [64], improving upon the
error estimates of Salmon and Warren [54], were able to simulate the vortex wake be-
hind an accelerated airfoil using a vortex method with a cut-off Gaussian smoothed
Biot-Savart kernel.
Before going into more detail, we first briefly describe the overall structure of
our tree code. The algorithm has two stages, the construction of the tree and the
computation of the particle velocities. The tree construction involves the recursive
subdivision of space to form the nested particle clusters, and the computation of clus-
ter parameters which are used for particle-cluster interactions. Particle velocities are
computed using a combination of particle-cluster interactions and particle-particle
interactions. The decision for where these interactions are performed is based upon
tolerance conditions and execution time considerations. The influence of a particle
cluster on a target particle is computed with a particle-cluster interaction only when
a tolerance condition is satisfied and when doing so takes less time than performing
35
individual particle-particle interactions. Otherwise, either the cluster acts on the tar-
get particle with particle-particle interactions, or the computation descends another
level into the tree and considers interactions between the cluster’s subclusters and
the target particle. This process continues until either particle-cluster interactions
are performed or the leaves of the tree are reached, in which case particle-particle
interactions are performed. Other algorithms which have a similar structure as ours
have been shown to require O(N logN) operations. We present numerical results
in the next chapter which show that our algorithm’s execution time also grows like
O(N logN).
The layout for the rest of this chapter is as follows. Section 3 describes particle-
cluster interactions where the approximation is based on Taylor series. The factors
which determine the efficiency of such an approximation are discussed. This moti-
vates the nested subdivision of space described in Section 4. Section 5 describes a
method based on recurrences for computing the far-field expansion coefficients. Sec-
tion 6 presents the error analysis upon which the adaptive order selection is based.
Section 7 gives a full description of the algorithm. Section 8 discusses the execution
time and memory requirements of the algorithm.
3.3 Particle-Cluster Interactions
Consider a particle-cluster interaction between a target particle x and a collection
of particles yj, where j = 1 . . .Nτ . The yj are referred to as a particle cluster and
the region of space containing them is referred to as a cell and is denoted τ . This
situation is depicted in Figure 3.1 in two space dimensions. When the particle-cluster
interaction is performed, the cumulative influence of the yj on x is replaced with a
36
9
: ;=<
>?
Figure 3.1: Particle-cluster interaction. x : target particle, yj : particle in cluster, τ: cell, y : center of τ .
truncated series expansion. From (2.23), the influence of the yj on x is
Nτ∑
j=1
Kδ(x,yj) × wj. (3.9)
We expand Kδ(x,yj) in a Taylor series in the second argument about a point y, the
center of τ . For the moment, we will not specify where y is located except to say that
two natural possibilities are : (1) the center of mass of the yj, (2) the geometrical
center of τ when it is a rectangular box. Using multi-index notation, we have
Nτ∑
j=1
Kδ(x,yj) × wj =Nτ∑
j=1
Kδ(x, y + (yj − y)) × wj
=Nτ∑
j=1
(∑
k
1
k!Dk
yKδ(x, y)(yj − y)k)× wj
=∑
k
1
k!Dk
yKδ(x, y) ×
Nτ∑
j=1
(yj − y)kwj
=∑
k
ak(x, y) × bk(τ),
(3.10)
where
ak(x, y) =1
k!Dk
yKδ(x, y), bk(τ) =Nτ∑
j=1
(yj − y)kwj. (3.11)
The ak(x, y) are the Taylor coefficients of Kδ(x,y) with respect to y about y = y.
The bk(τ) describe the distribution of particles in τ and are referred to as particle
37
moments. Note that the Taylor coefficients ak(x, y) are independent of the particles
yj in the cell τ , and the particle moments bk(τ) are independent of the target particle
x. So in a certain sense, the expansion is a separation of variables. Once the particle
moments are computed for one particle-cluster interaction, they can be stored and
used for subsequent particle-cluster interactions with different target particles.
In practice, the influence of the yj on x is approximated by truncating the infinite
series in (3.10), yielding
∑
|k|<p
ak(x, y) × bk(τ), (3.12)
where |k| = k1+k2+k3 and p is chosen to ensure that the error is less than a specified
tolerance. The determination of p is described in Section 3.6. Let
rτ = maxj
|yj − y| (3.13)
be the radius of the cluster about y, and
R = (|x − y|2 + δ2)1/2 (3.14)
be the regularized distance from x to the center of the cell. It is shown in Section
3.6 that the error incurred by using the truncation (3.12) is O(hp), where h = rτ/R
is the convergence factor of the expansion. Thus, the truncation is referred to as a
pth order expansion for a particle-cluster interaction. A particle-cluster interaction
is performed as follows :
1. Determine the minimum value of p which ensures that the series truncation
error is less than the specified tolerance.
2. If the particle moments bk(τ) have not already been computed up to order p,
then compute and store them.
38
3. Compute the Taylor coefficients ak(x, y) for |k| < p.
4. Compute the sum in (3.12).
Step 1 is based on error bounds described in Section 3.6 and can be performed
with O(pmax) operations, where pmax is the largest admissible value for p. Step 2
requires O(Nτp3) operations if the particle moments have not already been computed.
However, this is a one-time cost whose relative effect on the overall execution time
diminishes as τ is used in more particle-cluster interactions. The exponent on p in
this operation count is three because we are in three space dimensions. Step 3 can
be performed with O(p3) operations using a method based on recurrences that is
described in Section 3.5. This is the best that can be expected, since there are O(p3)
coefficients to compute. The sum in step 4 hasO(p3) terms and can be computed with
O(p3) operations. Adding these operation counts, we see that a pth order particle-
cluster interaction requires O(p3) operations, assuming that the particle moments
have been computed.
Using a particle-cluster interaction is not always advantageous. For instance,
computing the influence of the yj on x by direct summation, i.e. (3.9), may require
fewer operations than computing a pth order expansion, where p has been determined
by accuracy constraints. In this situation, we do not use the expansion, opting either
to use direct summation or to subdivide τ and consider particle-interactions between
x and the resulting subcells. This decision is based on the following considerations.
Direct summation requires O(Nτ) operations, where Nτ is the number of particles
in τ , and using the expansion requires O(p3) operations. So if direct summation
requires fewer operations than the expansion, it may be loosely stated that either
Nτ is small or p is large. If Nτ is small, then there are no alternatives to direct
39
summation that will reduce the operation count. This is quantified by introducing a
parameter N0 and using direct summation when Nτ < N0. If Nτ ≥ N0 and p is such
that using the expansion requires more operations than direct summation, then we
subdivide τ and consider particle-cluster interactions with the resulting subcells. The
motivation for this is that the expansions for the particle-cluster interactions with the
subcells will require lower orders (smaller value of p) to satisfy the specified tolerance.
This is because the convergence factors for the new expansions are at most 0.79h,
where the 0.79 factor arises from the partial bisection algorithm described in the next
section. So when the execution time required to perform direct summation is less
than the time required to perform a particle-cluster interaction, direct summation is
performed if Nτ < N0, and τ is subdivided if Nτ ≥ N0. The iterative application of
this leads to the nested subdivision of space which is described in detail in the next
section.
In practice, the comparison between the time required to perform direct summa-
tion and the time required to perform a pth order particle-cluster expansion is done
as follows. A stand-alone program was written which performs direct summation
between a particle and a cluster. The program was run using clusters with varying
numbers of particles Nτ . The execution time was fit with a linear function of Nτ .
This linear function is used to estimate how long it takes to perform direct summa-
tion with a cluster that has an arbitrary number of particles. A similar program was
written which performs particle-cluster expansions and the execution time of this
program as a function of p was determined. These execution times are stored and
a table lookup is used to determine how long an expansion takes. The comparison
between execution times is made between the linear function of Nτ and the stored
execution time for a pth order expansion.
40
3.4 Tree Construction
The strategy of subdividing cells when using an expansion for a particle-cluster
interaction is used to compute the velocity of every particle. A consequence of this is
that every cell containing particles will be recursively subdivided until the resulting
subcells have fewer than N0 particles. This operation of subdividing the cells can
be done independently of the target particles, so it is advantageous to do it once, at
the beginning of the velocity computations. The resulting collection of cells admits a
natural tree structure where nodes in the tree correspond to cells of the subdivision.
A cell τ2 is a child of a cell τ1 if τ2 was obtained by subdividing τ1. The tree is
constructed with the following recursive algorithm :
1. The collection of particles is enclosed with a rectangular box, which becomes
the root cell of the tree and is denoted τ0. Set the current cell to τ0.
2. If the current cell τ contains fewer than N0 particles then exit. The cell τ is a
leaf of the tree.
3. Otherwise, subdivide τ into subcells and apply step 2 to each subcell. The
resulting subcells become children of τ in the tree.
There are two aspects of this tree construction that need further explanation, the
choice of N0 and the method by which the cells are subdivided. The choice of N0
affects the performance of the algorithm in two ways. If N0 is too small, then the
tree will have many levels, leading to a large memory requirement. However, if
N0 is too large, then the tree consists of cells having large spatial dimensions, and
this increases the order p needed in the expansion for particle-cluster interactions,
thereby increasing execution time. Computational experiments were performed on a
41
test case to determine an appropriate value of N0. These tests are described in the
next chapter.
The subdivision of a cell τ is based upon τ ’s bounding box, the smallest rectangular
box containing τ ’s particles whose sides are parallel to the coordinate axes. Let l
be the longest edge of the bounding box. The bounding box is bisected in each
direction in which its length is greater than l/√
2, yielding either 2, 4, or 8 subcells,
and the particles are partitioned according to which subcell they are contained in.
The subcells which contain particles become children of τ , and the subcells with no
particles are discarded. The reason for bisecting the box only in the long directions
is that bisecting in short directions does not significantly reduce the convergence
factor of the particle-cluster expansion. This is because the convergence factor for the
expansion is proportional to rτ , the radius of the cell. Note that when the subdivision
process is applied recursively to the subcell, their bounding boxes depend only on
their particles. Hence, the bounding boxes shrink to fit the particle distribution. The
factor 1/√
2 was chosen to ensure that the child cell’s aspect ratio, before shrinking,
is closer to 1 than the parent cell’s aspect ratio. Using a different factor was not found
to improve the algorithm’s performance significantly. A byproduct of this algorithm
for constructing the tree is that every cell in the tree has a bounding box computed
for it. We select y, the base point of the Taylor series expansions, to be the center
of the bounding box. Using this expansion point and shrinking the bounding boxes
yields an expansion point which is close to the particles. A consequence of this is
that small values of p can be used for the expansion, which reduces execution time.
Figures 3.2 and 3.3 depict the subdivisions and associated trees resulting from
the application of this algorithm to a random collection of points and a sequence of
points on a spiral. The rectangles shown are the bounding boxes for the points within
42
them. The thickness of the rectangle borders are thinner for cells deeper in the tree.
For these figures, N0 was set to 20 for illustrative purposes, so cells with more than
20 particles were subdivided as described above. The spiral example demonstrates
how the bounding boxes shrink to fit the particle distribution. Distributions like
this occur in our computations, since we are dealing with two-dimensional surfaces
embedded in R3.
3.5 Recurrences for Taylor Coefficients
For the algorithm to be computationally efficient, it is necessary to rapidly com-
pute the ak(x, y), the Taylor coefficients of Kδ(x,y) defined in (3.11). A method for
doing this is described here. Recall that the kernel Kδ is given by
Kδ(x,y) = − 1
4π
x − y
(|x − y|2 + δ2)3/2. (3.15)
Our first observation is that the computation of the partial derivatives of Kδ can be
sped up using the fact that Kδ(x,y) = ∇ψ(x − y), where
ψ(z) =1
4π(|z|2 + δ2)−1/2. (3.16)
Note that ψ is a regularized form of the fundamental solution to Laplace’s equation
in three dimensions. The Taylor coefficients of Kδ are
ak(x, y) =1
k!Dk
yKδ(x, y) =(−1)|k|
k!Dk(∇ψ)(x − y). (3.17)
Defining the quantities
ck(x, y) =1
k!Dkψ(x − y), (3.18)
43
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
rr
rr
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
rr
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
rr
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
rr
r
r
r
r
r
r
(a)
(b)
Figure 3.2: Subdivision of space for random points. (a) Nested subdivision of space.(b) Associated tree structure.
44
rrrrrrrrrrrrrrrrrr
rrrrrrrr
rrrrrr
r
r
r
r
r
r
r
r
r
r
r
r
rrrrr r r r r r
rrr
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
rr
rrrrr
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
rr r r
rr
r
r
r
r
r
r
r
r
r
r
r
(a)
(b)
Figure 3.3: Subdivision of space for points on a spiral. (a) Nested subdivision ofspace. (b) Associated tree structure.
45
we have the relationship
ak = (−1)|k|
(k1 + 1)ck1+1,k2,k3
(k2 + 1)ck1,k2+1,k3
(k3 + 1)ck1,k2,k3+1
. (3.19)
We compute the ck(x, y) with recurrences and then use (3.19) to compute the
ak(x, y). Another relationship between ak(x, y) and ck(x, y) arises by considering
them as functions of x with y fixed
ak(x, y) = (−1)|k|∇xck(x, y). (3.20)
This equation will be useful for the error analysis in the next section. To simplify
the presentation of the recurrences for the ck(x, y), we first present recurrences for
the Taylor coefficients of a one-dimensional analogue of ψ, ψ1(x) = (x2 + δ2)−1/2.
Proposition 1 Fix x0 ∈ R and let ck = ψ(k)1 (x0)/k! be the kth order Taylor coeffi-
cient of ψ1(x) at x = x0. Then the ck satisfy the recurrence
(x20 + δ2) ck + 2x0 (1 − 1
2k) ck−1 + (1 − 1
k) ck−2 = 0 (3.21)
for k > 0, with the convention that ck = 0 for k < 0.
Proof : First observe that ψ1 satisfies the differential equation
(x2 + δ2)ψ′1(x) + xψ1(x) = 0. (3.22)
Let k > 0. Differentiating (k − 1) times, using the Leibniz rule for differentiating a
product, we obtain
(x2 + δ2)ψ(k)1 (x) + (k − 1) 2xψ
(k−1)1 (x) + (k − 1)(k − 2)ψ
(k−2)1 (x)
+ xψ(k−1)1 (x) + (k − 1)ψ
(k−2)1 (x) = 0. (3.23)
46
Substituting x = x0 and grouping similar terms yields
(x20 + δ2)ψ
(k)1 (x0) + 2x0 (k − 1
2)ψ
(k−1)1 (x0) + (k − 1)2 ψ
(k−2)1 (x0) = 0.
(3.24)
The result (3.21) is obtained on dividing by k! and using the identities
k − 1/2
k!=
1 − 1/(2k)
(k − 1)!,
(k − 1)2
k!=
1 − 1/k
(k − 2)!. � (3.25)
The essential ingredient in the proof of Proposition 1 is the differential equa-
tion (3.22) that ψ1 satisfies. The function ψ(z) of (3.16) whose Taylor coefficients
we require, satisfies three differential equations which are analogous to (3.22) :
(|z|2 + δ2)∂ψ
∂z1(z) + z1ψ(z) = 0, (3.26a)
(|z|2 + δ2)∂ψ
∂z2(z) + z2ψ(z) = 0, (3.26b)
(|z|2 + δ2)∂ψ
∂z3(z) + z3ψ(z) = 0. (3.26c)
Following the proof of Proposition 1, we obtain the following result.
Proposition 2 Let z ∈ R3, R = (|z|2 + δ2)
1/2and ck = 1
k!Dkψ(z). Then
R2ck1,k2,k3 + 2z1(1 −1
2k1)ck1−1,k2,k3 + (1 − 1
k1)ck1−2,k2,k3
+ 2z2ck1,k2−1,k3 + ck1,k2−2,k3 + 2z3ck1,k2,k3−1 + ck1,k2,k3−2 = 0, (3.27a)
R2ck1,k2,k3 + 2z2(1 −1
2k2)ck1,k2−1,k3 + (1 − 1
k2)ck1,k2−2,k3
+ 2z1ck1−1,k2,k3 + ck1−2,k2,k3 + 2z3ck1,k2,k3−1 + ck1,k2,k3−2 = 0, (3.27b)
R2ck1,k2,k3 + 2z3(1 −1
2k3
)ck1,k2,k3−1 + (1 − 1
k3
)ck1,k2,k3−2
+ 2z1ck1−1,k2,k3 + ck1−2,k2,k3 + 2z2ck1,k2−1,k3 + ck1,k2−2,k3 = 0, (3.27c)
47
where k1 > 0 in (3.27a), k2 > 0 in (3.27b), k3 > 0 in (3.27c), with the convention
that ck = 0 when any of the indices are negative.
These recurrences are used to compute the ck for |k| ≤ p with O(p3) operations.
To demonstrate how this is done and to simplify the presentation, we first explain
the process for a two-dimensional analogue, obtained by omitting the z3 and k3
dependence. We describe the generalization to the three-dimensional case afterward.
So consider the two recurrences
R2ck1,k2 + 2z1(1 − 1
2k1)ck1−1,k2 + (1 − 1
k1)ck1−2,k2 + 2z2ck1,k2−1 + ck1,k2−2 = 0,
(3.28a)
R2ck1,k2 + 2z1ck1−1,k2 + ck1−2,k2 + 2z2(1 − 1
2k2)ck1,k2−1 + (1 − 1
k2)ck1,k2−2 = 0.
(3.28b)
The coefficients are computed in the following 4 steps, depicted in Figure 3.4.
1. Compute c0,0 from the definition.
2. Compute ck,0 and c0,k for k = 1 . . . p.
3. Compute ck,1 and c1,k for k = 1 . . . p− 1.
4. Compute ck1,k2 for k1 + k2 ≤ p.
The coefficients obtained in step 4 are computed row-by-row. The computation
is ordered this way to ensure that the coefficients needed for the recurrences are
available. It also breaks the code into blocks which correspond to the cases when
different coefficient indices arising in the recurrences are negative, allowing for a more
understandable code. This is more of an issue in the three-dimensional case, where
there are more index cases to consider. The computations for the three-dimensional
case are performed in the following steps :
48
@BA
C�D
E�F
GBH
I�J
KBL MBN
O�P
Step 1 Step 2
Step 3 Step 4
Figure 3.4: Computing Taylor coefficients for two-dimensional example. (•) : previ-ous step, (◦x) : current step, (◦) : future step.
49
1. Compute c0 from the definition.
2. Compute ck when two indices are 0 and the other is ≥ 1.
3. Compute ck when one index is 0, one index is 1 and the other is ≥ 1.
4. Compute ck when one index is 0 and the other two are both ≥ 2.
5. Compute ck when two indices are 1 and the other is ≥ 1.
6. Compute ck when one index is 1 and the other two are ≥ 2.
7. Compute ck when all of the indices are greater than 2.
As in the two-dimensional case, this ordering of the steps ensures that coefficients
needed for the recurrences are available. Once the coefficients are computed, (3.19)
is used to compute the ak(x, y) for |k| < p with another O(p3) operations. Thus, the
overall operation count for computing the ak(x, y) for a pth order particle-cluster
interaction is O(p3).
3.6 Error Analysis of Particle-Cluster Interactions
In this section, we obtain a bound for the error due to the series truncation in
a particle-cluster interaction. This bound is used in the algorithm to compute an
order p to satisfy the specified tolerance. So consider a cell τ with particles yj acting
on the target particle x. To simplify the analysis, we initially bound the error in
the series truncation for the influence of a single particle yj in τ on x. The triangle
inequality then ensures that the total error in the particle-cluster interaction is less
than the sum of the individual errors. From (3.12), yj’s computed influence on x is
∑
|k|<p
ak(x, y) × (yj − y)kwj. (3.29)
50
Because the vector weight wj is independent of k, it factors out of the equation, so
we restrict our attention to the expression
∑
|k|<p
ak(x, y)(yj − y)k. (3.30)
To analyze the rate of convergence of this series as p increases, the quantities
Sn =∑
|k|=n
ak(x, y)(yj − y)k (3.31)
are introduced, where the dependence of Sn on x, y, and yj is not explicitly displayed
for notational convenience. With the series truncation that we are using, |k| < p,
the multi-dimensional series (3.30) has been reduced to a one dimensional series
∑
|k|<p
ak(x, y)(yj − y)k =∑
n<p
Sn. (3.32)
We estimate the error due to the truncation by showing that the magnitude of the
Sn decrease geometrically and using a bound on the first omitted term Sp. The
differential equation relating ak(x, y) and ck(x, y), (3.20), leads us to introduce the
quantity
Tn =∑
|k|=n
ck(x, y)(yj − y)k, (3.33)
which is related to Sn by
Sn = (−1)n∇xTn. (3.34)
From the recurrences for ck(x, y), (3.27), we derive a recurrence for Tn. From this,
we derive an explicit expression for Tn which involves Legendre polynomials. Then
using (3.34), we derive an expression for Sn. This expression is used to estimate the
error incurred by truncating the series (3.12).
51
Proposition 3 With Tn, ck(x, y) and R defined as above,
R2Tn + 2α(1 − 1
2n)Tn−1 + β2(1 − 1
n)Tn−2 = 0, (3.35)
where
α = (x − y) · (yj − y), β = |yj − y|. (3.36)
Proof : Consider a term R2ck(x, y)(yj − y)k from the sum in (3.33) which makes up
R2Tn. Letting z = x− y, we apply a linear combination of the identities (3.27a,b,c)
with weights k1/n, k2/n and k3/n respectively and solve for R2ck(x, y)(yj − y)k.
The result is a weighted sum of ck(x, y) over |k| = n− 1 and n− 2. The weight on
a particular ck(x, y) is computed as follows.
If |k| = n − 1, then the ck(x, y) arose from identities (3.27) being applied to
R2ck(x, y) terms with k equal to (k1 + 1, k2, k3), (k1, k2 + 1, k3), or (k1, k2, k3 + 1).
The resulting weight multiplying ck(x, y) is then (using k1 + k2 + k3 = n− 1)
2z1
(k1 + 1
n
(1 − 1
2(k1 + 1)
)+k2
n+k3
n
)(yj − y)(k1+1,k2 ,k3)
+ 2z2
(k1
n+k2 + 1
n
(1 − 1
2(k2 + 1)
)+k3
n
)(yj − y)(k1 ,k2+1,k3)
+ 2z3
(k1
n+k2
n+k3 + 1
n
(1 − 1
2(k3 + 1)
))(yj − y)(k1 ,k2 ,k3+1)
(3.37)
= 2z1(1 − 1
2n)(yj − y)(k1+1,k2 ,k3) + 2z2(1 − 1
2n)(yj − y)(k1 ,k2+1,k3)
+ 2z3(1 − 1
2n)(yj − y)(k1 ,k2 ,k3+1)
(3.38)
= 2 {z1(yj,1 − y1) + z2(yj,2 − y2) + z3(yj,3 − y3)} (1 − 1
2n)(yj − y)k
(3.39)
= 2z · (yj − y)(1 − 1
2n)(yj − y)k (3.40)
= 2α(1 − 1
2n)(yj − y)k (3.41)
52
If |k| = n−2, then the ck(x, y) arose from identities (3.27) being applied toR2ck(x, y)
terms with k equal to (k1 +2, k2, k3), (k1, k2 +2, k3), or (k1, k2, k3 +2). The resulting
weight multiplying ck(x, y) is then (using k1 + k2 + k3 = n− 2)
(k1 + 2
n(1 − 1
k1 + 2) +
k2
n+k3
n
)(yj − y)(k1+2,k2 ,k3)
+
(k1
n+k2 + 2
n(1 − 1
k2 + 2) +
k3
n
)(yj − y)(k1 ,k2+2,k3)
+
(k1
n+k2
n+k3 + 2
n(1 − 1
k3 + 2)
)(yj − y)(k1 ,k2 ,k3+2)
(3.42)
= (1 − 1
n)(yj − y)(k1+2,k2 ,k3) + (1 − 1
n)(yj − y)(k1 ,k2+2,k3)
+ (1 − 1
n)(yj − y)(k1 ,k2 ,k3+2)
(3.43)
= |yj − y|2(1 − 1
n)(yj − y)k (3.44)
= β2(1 − 1
n)(yj − y)k (3.45)
Thus, when R2Tn is expanded with identities (3.27), the result is
R2Tn = −∑
|k|=n−1
2α(1 − 1
2n)c
k(x, y)(yj − y)k −
∑
|k|=n−2
β2(1 − 1
n)c
k(x, y)(yj − y)k
(3.46)
= −2α(1 − 1
2n)Tn−1 − β2(1 − 1
n)Tn−2. � (3.47)
The recurrence (3.35) is related to the one satisfied by the Legendre polynomials,
Pn(x) − 2x(1 − 1
2n)Pn−1(x) + (1 − 1
n)Pn−2(x) = 0, (3.48)
for n ≥ 2 with P0(x) = 1 and P1(x) = x [22, Chapter 10]. This observation leads to
the following explicit formula for Tn.
Proposition 4 With α, β, and R defined as above,
Tn =hn
4πRPn
(− α
βR
), (3.49)
53
where
h =β
R. (3.50)
Proof : The proof works by showing that Tn and the right-hand side of (3.49), which
we refer to as Tn, satisfy the same two-term recurrence and have the same values for
n = 0, 1. The recurrence for Tn is given in Proposition 3. From the recurrence for
Pn in (3.48), we have that Pn(− αβR
) is a solution of the recurrence
fn + 2α
βR(1 − 1
2n)fn−1 + (1 − 1
n)fn−2 = 0. (3.51)
Thus, hnPn(− αβR
) is a solution of
fn + 2hα
βR(1 − 1
2n)fn−1 + h2(1 − 1
n)fn−2 = 0. (3.52)
Multiplying this equation by R2 and using h = β/R yields
R2fn + 2α(1 − 1
2n)fn−1 + β2(1 − 1
n)fn−2 = 0, (3.53)
which is the recurrence for Tn. Since Tn is a multiple of hnPn(− αβR
), it too satisfies the
recurrence. So Tn and Tn satisfy the same two-term recurrence. From the definition
of Tn, (3.33), and the recurrence that the Tn satisfy, (3.35), the initial values for Tn
are
T0 = c0(x, y) =1
4π(|x − y|2 + δ2)−1/2 =
1
4πR(3.54)
T1 = − α
R2T0 = − α
4πR3. (3.55)
Using h = β/R, the initial values for Tn are
T0 =h0
4πRP0
(− α
βR
)=
1
4πR, (3.56)
T0 =h1
4πRP1
(− α
βR
)= − α
4πR3. (3.57)
54
Thus, Tn = Tn for all n ≥ 0. �
To obtain an expression for Sn, we take the gradient of Tn with respect to x.
When written out in terms of x, yj, and y, we have from (3.49)
Tn =|yj − y|n
4π
(|x − y|2 + δ2
)−(n+1)/2Pn
(− (x − y) · (yj − y)
|yj − y|(|x − y|2 + δ2)1/2
).
(3.58)
Defining
γ = − (x − y) · (yj − y)
|yj − y|(|x − y|2 + δ2)1/2, (3.59)
we have
Sn =(−1)n|yj − y|n
4π
{−(n + 1)(x − y)
(|x − y|2 + δ2
)−(n+3)/2Pn(γ)
+(|x − y|2 + δ2
)−(n+1)/2P ′
n(γ)
[−(yj − y)
|yj − y|(|x− y|2 + δ2)1/2
+ (x − y)(x − y) · (yj − y)
|yj − y|(|x− y|2 + δ2)3/2
]}. (3.60)
Recalling R = (|x − y|2 + δ2)1/2 and making some rearrangements, we obtain
Sn =(−1)n
4πR2
(|yj − y|
R
)n {−(n + 1)
x − y
RPn(γ)
+ P ′n(γ)
[− yj − y
|yj − y| +(x − y) (x − y) · (yj − y)
R2|yj − y|
]}. (3.61)
Each fraction inside the curly braces is less than 1 in magnitude, so we have
|Sn| ≤1
4πR2
(|yj − y|
R
)n
((n+ 1)Pn(γ) + 2P ′n(γ)) . (3.62)
Using the inequalities
|Pn(γ)| ≤ 1, |P ′n(γ)| ≤ n(n+ 1)/2, (3.63)
which rely on |γ| ≤ 1, we have
|Sn| ≤(n + 1)2
4πR2
(|yj − y|
R
)n
. (3.64)
55
So the terms of the series in (3.32) decay geometrically, which implies that the
truncation error is roughly the magnitude of the first omitted term. Recall that when
a pth order particle-cell interaction is performed, the expansion for the influence of
all of the particles is
∑
k
ak(x, y) × bk(τ) =∑
p≥0
∑
|k|=p
ak(x, y) × bk(τ)
, (3.65)
and this is truncated by retaining the terms for which |k| < p. The geometric decay
of the terms ensures that the error incurred by using this truncation will be on the
order of
∑
|k|=p
ak(x, y) × bk(τ). (3.66)
The bound (3.64) on Sn for n = p translates into the bound
∣∣∣∣∣∣
∑
|k|=p
ak(x, y) × bk(τ)
∣∣∣∣∣∣≤ (p+ 1)2
4πRp+2
Nτ∑
j=1
|wj||yj − y|p. (3.67)
Define the quantities
σp(τ) = (p+ 1)2Nτ∑
j=1
|wj||yj − y|p. (3.68)
Then the error incurred by using a pth order expansion to approximate a particle-
cluster interaction is bounded by
error <σp(τ)
4πRp+2. (3.69)
The σp(τ) are computed during the construction of the tree. The first step in per-
forming a particle-cluster expansion is to find the smallest p such that the expression
in (3.69) is less than the specified tolerance. This can be done with O(pmax) op-
erations, as stated in Section 3.3, where pmax is the maximum admissible value of
p.
56
When an algorithm using the error bound (3.69) to compute p was implemented,
it was found that the actual error incurred in computing the velocity was typically
three orders of magnitude smaller than the specified tolerance. Presumably, this is
due to the repeated use of the triangle inequality in the analysis, which leads to
overestimates. An alternative to bounding the error in the velocity is to bound the
error in the velocity potential, which is achieved by using the identity (3.49), leading
to the bound
|Tn| ≤1
4πR
(|yj − y|
R
)n
, (3.70)
a bound analogous to (3.64). The cumulative error bound corresponding to (3.69) is
error <σp(τ)
4πRp+1, (3.71)
where σp(τ) is now defined as
σp(τ) =Nτ∑
j=1
|wj||yj − y|p. (3.72)
When an algorithm using this error bound to compute p was implemented, the error
in computing the velocity was still smaller than the specified tolerance, but only by
one order of magnitude. This is the approach used for all of the runs described in
Chapters 4 and 5.
For either of the error bounds, it is clear that the geometric decay rate of the
truncation error depends linearly on rτ , the radius of the smallest sphere centered at
y which encloses all the particles in the cell τ . Thus, it is appropriate to subdivide
cells so that the resulting subcells are as close to spheres as possible. As mentioned
in Section 3.4, this is the motivation for the bisection technique used when cells are
subdivided.
57
3.7 Full Description of the Algorithm
The algorithm for computing all interactions has two stages, constructing the
tree and computing the particle velocities with the aid of the tree. There are two
parameters for the program, pmax, the maximum admissible order for expansions,
and N0, the maximum number of particles in an undivided cell.
The tree is created with the recursive function create_tree, written here in
pseudo-code, which accepts for input an array of particles associated with a cell τ ,
and an integer N , the length of the array. The purpose of the function is to create
and initialize a tree node for the particles which are passed to it. This includes
computing the particle’s bounding box, the cell’s moments, and the σ’s. If there
are more than N0 particles, then the cell is subdivided and the function is called
recursively. The function returns a pointer to the created tree node.
function create_tree(particles, N)
begin
allocate memory for tree node being created
compute particle’s bounding box
compute center of bounding box
compute σp for p = 0 . . . pmax
if N > N0 then
compute the directions to subdivide the cell
partition the particles, yielding subarrays of particles
call create_tree for each subarray of particles
make each returned tree node a child of τ
return τ
58
end
Once the tree is created, the recursive function compute_influence is called for each
target particle to compute the influence of all particles on it. The function accepts
for input a target position x, a cell τ , and a tolerance tol. The function returns the
influence of the particles in the cell on the target position computed to the specified
tolerance. It is initially called with the root cell of the tree τ0.
function compute_influence(x, τ, tol)
begin
estimate t0, the time for direct summation with linear model
compute minimum p to satisfy tolerance
if p > pmax
or time for pth order expansion > t0 then
if τ has no children then
compute and return influence using direct summation
else
call compute_influence for each child of τ
return sum of returned influences
else
if τ’s pth order particle moments have not been
computed yet, then compute and store them
compute the ck
compute the ak from the ck
compute and return sum of expansion
end
For each recursive call of compute_influence to itself, a local tolerance is required.
59
We want the cumulative errors from the child computations to be less than or equal
to the tolerance passed to compute_influence. We achieve this by multiplying the
parent’s tolerance by the ratio of the child’s weights and the parent’s weights. That
is, if τ is the child cell, and P (τ) is τ ’s parent, then
tol(τ) =
∑yj∈τ |wj|
∑yj∈P (τ) |wj|
tol(P (τ)), (3.73)
where tol(τ) denotes the local tolerance for the cell τ . Then it follows that the sum
of the errors from the child computations is bounded by the tolerance specified for
P (τ). Note that the sums in the ratio are the values of σ0(τ) and σ0(P (τ)), which
were computed in create_tree.
3.8 Complexity Analysis
In this section, we describe the memory and time requirements of the algorithm
described above. We first show that the memory required for the algorithm is O(N).
The algorithm consists of two stages, tree construction and velocity computation, and
we analyze them separately for their time requirements. The number of operations
required for constructing the tree is O(N logN). We break the velocity computa-
tions into two parts, particle-cluster interactions and particle-particle interactions.
We present heuristic reasons for why these take O(N logN) and O(N) operations
respectively.
The bounds obtained in this section should be considered as rough guides to
how the algorithm performs in practice, as opposed to sharp estimates. We expect
that the asymptotic behavior of the bounds matches the algorithm’s asymptotic
performance, but that the constants involved may be considerably off. In the next
chapter, we present data from runs on test cases which demonstrates the algorithm’s
performance benefit over an algorithm which uses only direct summation. It is our
60
position that that data is more significant than the asymptotic bounds obtained here,
since we desire an actual execution time improvement, not just an asymptotically
fast algorithm. With that in mind, we proceed with the analysis.
We now discuss the memory requirements for the algorithm, in terms of the
parameters N , N0, and pmax. The memory can be broken down into 2 categories,
that required for the particles, and that required for the tree. It is clear that the
particles require O(N) words of memory. The data for a single cell that requires
more than O(1) words are the cell moments and the σp(τ), which require O(p3max)
and O(pmax) words respectively. So a single cell uses O(p3max) words of memory. We
bound the number of cells in the tree, by first bounding the number of cells which
are parents of leaf cells, and then use that to bound the size of the entire tree. A
cell which is the parent of a leaf cell has at least N0 particles. Since every particle
is in exactly one such cell, there are at most N/N0 parents of leaf cells. Going down
the tree, we see that there are at most 8N/N0 leaf cells, since each cell has at most 8
children. Going up the tree, we see that there are at most N/2N0 parents of parents
of leaf cells, since each cell has at least 2 children, if it has children. Continuing up
the tree, looking at parents of parents and so on, yields collections of cells with at
most N/4N0, N/8N0, . . . cells respectively. Thus, there are at most
(8 + 1 + 1/2 + 1/4 + . . . )N/N0 = 10N/N0 (3.74)
cells in the tree. Thus, the memory required for the tree is O(p3maxN/N0). Note that
since each leaf cell has fewer than N0 particles in it, there must be more than N/N0
of them. Thus, our bound has the correct asymptotic order.
The tree code algorithm presented here requires more memory than a direct
summation program. However, in the next chapter, when the algorithm is validated,
61
the amount of memory actually used is compared to the memory used by a direct
summation program. It is found that the memory required by the tree code algorithm
is 1.3 to 1.6 times that required by direct summation.
For certain particle distributions and tolerance values, the algorithm will perform
poorly, taking more time than an algorithm which uses only direct summation. How-
ever, this behavior has not been observed in our tests. In order for the analysis to
reflect the actual performance characteristics of the algorithm, we make a simplifying
assumption about the particle distribution. The assumption is that when a cell is
subdivided, there is an upper bound on the percentage of particles contained in a
subcell. Mathematically, this is stated as
Nτ
NP (τ)
≤ C < 1, (3.75)
where τ is an arbitrary cell, P (τ) is the parent of τ , and C is a constant independent
of τ . Intuitively, this assumption is bounding how inhomogeneous the distribution
of particles can be. In our computations, the maximum value of Nτ/NP (τ) was
computed at each time step and found to be less than 0.5, so the assumption is
justified.
For the operation count of the tree construction, we first obtain an upper bound
on the number of levels in the tree. The root cell of the tree, τ0, has N particles.
Inequality (3.75) gives an upper bound on the number of particles in a cell in terms
of its parent. Applying it iteratively, we find that cells at the lth level have fewer
than C lN particles. Now if a cell has fewer than N0 particles, it is not subdivided.
This will be guaranteed if C lN < N0, which is true if l > log(N0/N)/ logC =
log(N/N0)/ logC−1. Thus, there are at most O(log(N/N0)) levels in the tree.
Consider a cell τ and let T (τ) be the total number of operations required to
62
construct the tree starting with τ and including all of τ ’s children. In the function
create_tree, the steps that require more than O(1) operations are computing the
particles’ bounding box and computing the σp(τ) for p = 0 . . . pmax, which require
O(Nτ) and O(pmaxNτ ) operations respectively. If Nτ ≤ N0, then no more operations
are performed, so T (τ) = O(pmaxNτ ). If Nτ > N0, then the particles are partitioned
and create_tree is called for each subcell. The partitioning consists of grouping
the particles according to which octant they are located in with respect to the cell’s
center, a procedure that can be done in O(Nτ ) operations. Then create_tree is
called for each subcell, implying
T (τ) = O(pmaxNτ ) +∑
P (τ)=τ
T (τ). (3.76)
This equation, derived for Nτ > N0, is also true for Nτ ≤ N0, since the cell has no
children and the sum is empty.
Suppose Nτ > N0 and consider applying (3.76) to itself, expanding each T (τ).
The first term of the expansion of T (τ) is O(pmaxNτ ). Since the τ are the children
of τ , we have
∑
P (τ)=τ
Nτ = Nτ , (3.77)
an equality which requires Nτ > N0. Thus, the first terms of the expansions of the
T (τ) sum to O(pmaxNτ ). So if Nτ > N0, then
T (τ) = 2O(pmaxNτ ) +∑
P (P (τ))=τ
T (τ), (3.78)
with the last sum potentially being empty. We repeat this process and apply (3.76)
recursively to the T (τ ). However, it may be the case that not all children of τ have
children, because some children of τ may have fewer than N0 particles and thus are
63
not subdivided. Thus, the inequality
∑
P (P (τ))=τ
Nτ ≤ Nτ , (3.79)
analogous to (3.77), may be strict. So we obtain in general
T (τ) ≤ O(lpmaxNτ ) +∑
P (l)(τ )=τ
T (τ), l = 1, 2, . . . , (3.80)
where P (l) is the parent function P composed with itself l times. The recursion stops
when l is larger than the number of levels in the tree below τ , since the sum in (3.80)
is empty then. Thus, substituting τ = τ0, and using the fact shown above that there
are O(log(N/N0)) levels in the tree, we have
T (τ0) ≤ O(pmaxN log(N/N0)). (3.81)
For the computation of the particle velocities, we do not have an upper bound
on the number of operations that are used. The main difficulties are because of
the adaptive nature of the algorithm. There is not an apriori bound on the ratio
of a parent’s cell size and a child’s cell size. Thus, particle-cluster interactions be-
come significantly more advantageous when a parent cell is subdivided and shrunk,
as opposed to the gradual improvement that occurs when only subdividing is per-
formed. Also, the cells on a given level of the tree may have very different sizes.
This makes it difficult to consider them together which is a natural technique. Tree
codes in the past that are not as adaptive as the current one have been shown to
take O(N logN) operations. We believe that our algorithm does as well, based on
heuristic considerations and actual execution times.
The heuristic argument is as follows. We would show that O(N logN) opera-
tions are required by showing that each particle takes part in O(logN) particle-
cluster interactions and O(1) particle-particle interactions. Each particle takes part
64
in O(logN) particle-cluster interactions because it takes part in O(1) of them on
each level of the tree and there are O(logN) levels in the tree. The reason that a
particle only takes part in O(1) particle-cluster interactions on a given level is that
it does not interact with cells which are sufficiently far away relative to the cell’s
size, because the particle would have interacted with such cell’s parents. One ob-
tains an upper bound on the relative distance to a cell with which a particle-cluster
interaction is performed, and the upper bound is independent of the level. If the
cells are of the same size on the level, this implies an upper bound on the number
of cells satisfying the condition. This is one point where the analysis is heuristic
and not rigorous for our algorithm. Thus, there is an upper bound on the number of
particle-cluster interactions on a level, which implies an O(N logN) operation count.
To bound the number of particle-particle interactions, consider how many par-
ticles interact with a leaf cell on a particle-particle basis. If one assumes that the
number of particles which do so is proportional to the number of particles in the leaf
cell, then it follows that
∑
leaf cells τ
κN2τ < κN0
∑
leaf cells τ
Nτ < κN0N, (3.82)
where κ is the constant of proportionality. One can show that the particles which
interact with a leaf cell on a particle-particle basis are contained in a sphere around
the cell whose radius is proportional to the size of the cell. So if the particle density
in the sphere is not too different than the density in the cell, then the assumption of
the particle count is justified, and the operation count bound is achieved.
So with these heuristic considerations and the rigorous bounds above, we have
that the overall operation count for the algorithm is O(N logN) and the memory
usage is O(N).
CHAPTER 4
ALGORITHM VALIDATION AND
PERFORMANCE
In this chapter, we present a validation of the algorithm. The algorithm has two
different aspects to it, the vortex method, i.e. the discretization of the vortex sheet
model, and the tree-code which is used to evaluate particle velocities. The topics in
the first section are related to the vortex method. We demonstrate the 4-th order
convergence of the Runge-Kutta method and present results showing convergence as
the vortex sheet is refined. The other sections deal with the tree-code. We discuss
the selection of the runtime parameters N0 and pmax and demonstrate the algorithm’s
accuracy and execution time improvement over direct summation.
The algorithm was implemented in C [29], using double precision arithmetic and
runs were performed on a Silicon Graphics Power Challenge L, a Sun UltraSPARC 2,
and a Sun SPARCstation 20. Relevant information about the machines is presented
in Table 4.1. The computations which involved timing comparisons were performed
on the Silicon Graphics machine.
65
66
Machine RAM (MB) CPU clock rate (MHz)
Power Challenge L 128 75
UltraSPARC 2 380 168
SPARCstation 20 32 150
Table 4.1: Machine characteristics.
4.1 Convergence of Vortex Method
The purpose of the first test case is to verify the 4th order convergence of the
Runge-Kutta method for the solution of the differential equations (2.23). These runs
were performed with a program using direct summation. The initial condition was
a flat circular vortex sheet of radius 1 with circulation distribution λ1 = (1 − r2)1/2.
Such a sheet rolls up into a vortex ring as described in Chapter 2. The α change of
variable employed was λ1 = cosα, 0 ≤ α ≤ π/2, yielding r = sinα. The smoothing
parameter δ was set to 0.1. The sheet was discretized with 64 circular vortex lines,
uniformly spaced in α. Each vortex line was discretized with 128(1 + r) particles,
where r is the radius of the vortex line, rounding the number of particles up to the
nearest multiple of 8. The total number of particles discretizing the sheet was 13444.
A profile of the sheet at time t = 1 is depicted in Figure 4.1. The computations were
performed with different time steps and the results from different runs were compared
by computing the maximum distance between particle positions. This comparison
was used because in these particular runs, no particles or lines were inserted. The
values of ∆t used were 0.2, 0.1, 0.05, 0.025 and 0.0125. The position differences were
computed for consecutive values of ∆t and are displayed in Table 4.2. The results
are consistent with 4th order accuracy.
67
0 0.2 0.4 0.6 0.8 1−0.7
−0.6
−0.5
−0.4
−0.3
−0.2
−0.1
0
Figure 4.1: Profile of rolling up vortex sheet. t = 1, δ = 0.10.
∆t e(∆t) e(∆t)/(∆t)4
0.2 3.321 · 10−3 2.075
0.1 1.885 · 10−4 1.885
0.05 1.344 · 10−5 2.151
0.025 9.241 · 10−7 2.366
Table 4.2: Maximum point position differences for circular sheet. t = 1, δ = 0.10,e(∆t) = maxi‖xi(∆t) − xi(∆t/2)‖.
68
Recall from Section 2.2.3 that points and lines are inserted during a computation
to maintain resolution as the vortex sheet is stretched. There are two parameters
governing this process, denoted ε1 and ε2. When the distance between two adjacent
vortex lines is greater than ε1, a new vortex line is inserted and if two particles on a
vortex line are separated by more than ε2, a new particle is inserted. If either of these
parameters is too large, resolution is lost and the computations become inaccurate.
Figure 4.2 depicts cross sections of an axisymmetric vortex sheet rolling up into a
disk for different values of ε1. As above, the smoothing parameter δ is set to 0.1.
The cross sections are shown for t = 4. The time step size ∆t was set to 0.05, based
on the results of the previous section. The ε1 = 0.05 curve is smooth and no corners
are discernible. The ε1 = 0.10 curve is not as resolved, but the point positions are in
good agreement with the better resolved ε1 = 0.05 curve. The same can be said of
the ε1 = 0.15 curve, but the loss of resolution in the core of the ring is considerable.
4.2 Selection of Runtime Parameters
In this section, we present the results of runs which were performed to select the
runtime parameters N0, the upper bound on the number of particles in an undivided
cell, and pmax, the maximum admissible value of p. As explained previously, if N0
is small, then memory usage is large because the tree will have many levels. If N0
is large, then fewer particle-cluster interactions will be possible since there will be
fewer cells, resulting in a large execution time. Similarly, if pmax is large, then there
will be a large memory requirement because cell moments require O(p3max) words
of memory. If pmax is small, then fewer particle-cluster interactions will be possible
since the tolerance conditions will be satisfied less often, resulting in an increase in
execution time. To find values for these parameters which ensure good performance,
69
0 0.2 0.4 0.6 0.8 1−1.8
−1.6
−1.4
−1.2
−1
−0.8
−0.6
Figure 4.2: Profile of rolling up vortex sheet. t = 4, δ = 0.10, ∆t = 0.05, ε1 = 0.15,0.10, 0.05, ε2 = 0.05
70
runs were performed with N0 and pmax taking on a range of values, N0 = 50 . . . 1000
in increments of 50, and pmax = 6, 8, 10. Runs were performed with different N
values and tolerances to ensure consistent results.
The execution times of these runs are presented in Figure 4.3 as a function of N0.
Going up the page, N increases, and going right across the page, tol, the requested
tolerance decreases. The different line patterns correspond to different vales of pmax,
as described in the caption. A few observations can be made from this data. First,
though there are trends in the execution time as a function of N0, the timings never
vary by more than a few percentage points for fixedN and tolerance. The dependence
on pmax is similar, although for the smaller tolerances, the difference in the execution
time is larger. In particular, for the smallest tolerance, tol = 10−4, the pmax = 6
times are 15 to 20 percent larger than the pmax = 8 and 10 times, which are nearly
identical. In roll-up simulations in the Chapter 5, we use tol = 10−3 for accuracy.
For this tolerance, pmax = 8 consistently has smaller execution times, so that is our
choice of pmax. We postpone selection of N0 until after we discuss memory usage.
The memory used for these runs, in megabytes, is presented in Figure 4.4 as a
function of N0. As in Figure 4.3, N increases going up the page. The amount of
memory used by the algorithm is independent of the requested tolerance, so there is
only one column. As N0 increases, the memory usage decreases and levels out. As
expected, for larger values of pmax, the memory usage is larger.
From execution time and memory considerations, we use the value 512 for N0.
This means that we are potentially performing particle-particle interactions with
cells that contain 500 particles. Though this value may seem intuitively large, it is
justified from the numerical data in Figures 4.3 and 4.4. If much smaller values of
N0 are used, then execution times as well as memory usage are larger.
71
0 500 100013.5
14
14.5
15
15.5
N0
t (se
c.)
0 500 100022
23
24
25
N0
0 500 100030
35
40
N0
0 500 100036
38
40
42
t (se
c.)
0 500 100060
65
70
75
0 500 100090
100
110
120
0 500 100060
65
70
75
80
t (se
c.)
0 500 1000110
120
130
140
0 500 1000160
180
200
220
240
0 500 100090
95
100
105
110tol = 1.0e−2
t (se
c.)0 500 1000
160
170
180
190
200tol = 1.0e−3
0 500 1000250
300
350tol = 1.0e−4
12708
25572
38444
N=51276
Figure 4.3: Execution time (sec.) vs. N0. pmax = 6 (—), 8 (– – –), 10 (· · · ).
72
0 200 400 600 800 10000
5
10
15
20
25
N0
t (se
c.)
0 200 400 600 800 10000
5
10
15
20
25
N0
0 200 400 600 800 10000
5
10
15
20
25
N0
0 200 400 600 800 10000
10
20
30
40
50
t (se
c.)
0 200 400 600 800 10000
10
20
30
40
50
0 200 400 600 800 10000
10
20
30
40
50
0 200 400 600 800 10000
20
40
60t (
sec.)
0 200 400 600 800 10000
20
40
60
0 200 400 600 800 10000
20
40
60
0 200 400 600 800 10000
50
100
t (se
c.)
0 200 400 600 800 10000
50
100
0 200 400 600 800 10000
50
100
12708
25572
38444
N=51276
Figure 4.4: Memory usage (MB) vs. N0. pmax = 6 (—), 8 (– – –), 10 (· · · ).
73
4.3 Algorithm Performance
In this section, we compare the tree code’s performance to direct summation.
Execution time and memory usage as functions of N are compared for different
tolerances. These comparisons are based on evaluating the velocity at points on a
surface which approximates a rolled up vortex sheet, no time evolution is performed.
In Figures 4.5 and 4.6, the independent variable N , the total number of particles,
was made to vary by changing the refinement in λ1 (i.e. α).
Figure 4.5 displays the execution time. The different line patterns represent
different requested tolerances, as described in the caption. Figure 4.5a presents
the execution times in seconds and Figure 4.5b shows the ratio between the direct
summation time and the tree code’s time. In our roll-up computations in Chapter 5,
we use tol = 10−3, which corresponds to the dashed line. With this tolerance, the new
algorithm is faster than direct summation by a factor of 10 when there are 100,000
particles, and this factor increases with N . The factor of improvement appears to be
increasing at a rate which is slightly less than linear. This is the expected behavior for
an algorithm which requires O(N logN) operations, since N 2/(N logN) = N/ logN .
Figure 4.6 displays the memory used by the programs. Figure 4.6a presents the usage
in megabytes and Figure 4.6b shows the factor of increase, i.e. the ratio between the
new algorithm’s usage and the direct summation usage. As noted in Section 3.8, the
percentage increase over the direct summation algorithm is between 1.3 and 1.6.
The actual error in the computed value of the particle velocities, which is due
to series truncation, is less than the specified tolerance. The disparity is due to the
application of the triangle inequality in the error estimates in Section 3.6. Figure
4.7 displays the actual error as a function of the specified tolerance. Recall from
74
0 5 10 15
x 104
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000(a)
N
execution time (sec.)
0 5 10 15
x 104
0
5
10
15
20
25
30(b)
N
Figure 4.5: Execution time (sec.) vs. N . pmax = 8. tol = 10−2 (—), 10−3 (– – –),10−4 (· · · ). direct summation (–·–). actual data (o), projected data (x).(a) Execution time, (b) Direct summation time / fast algorithm time.
0 5 10 15
x 104
0
5
10
15
20
25
30
35
40
45(a)
N
memory usage (MB)
0 5 10 15
x 104
1.3
1.35
1.4
1.45
1.5
1.55
1.6(b)
N
Figure 4.6: Memory usage (MB) vs. N . pmax = 8. fast algorithm (—), directsummation (–·–). actual data (o), projected data (x). (a) Memory usage,(b) Fast algorithm memory usage / direct summation memory usage.
75
10−4 10−3 10−210−8
10−7
10−6
10−5
10−4
10−3
specified tolerance
actual velocity error
Figure 4.7: Actual error vs. specified tolerance. pmax = 8, N0 = 500, N = 6284,12708, 25572, 38444, 51276. potential error bound (—), velocity errorbound (· · · ).
Section 3.6 that there are two different error bounds, one on the velocity potential
(3.71) and one on the velocity (3.69). The figure contains data for programs which
determine p using these bounds for different values of N , plotted with solid and
dashed lines as described in the caption. It was stated in Section 3.6 that if the
choice of p is based on the velocity error bound, then the actual error in the velocity
is several orders of magnitude smaller than the requested tolerance, which is clearly
demonstrated by the figure. The actual error is also smaller when the potential error
bound is used, but by a smaller margin. Note that the actual error is not sensitive
to changes in N .
Figure 4.8 depicts the execution time as a function of the actual error, using the
two different error bounds. The plotted lines correspond to the requested tolerances
tol = 10−2, 10−3, 10−4 for a fixed value of N , going up the plot as N increases.
A conclusion that can be drawn from the figure is that the potential error bound
76
10−8 10−7 10−6 10−5 10−4 10−30
100
200
300
400
500
600
actual velocity error
execution time (sec.)
Figure 4.8: Execution time (sec.) vs. actual error. pmax = 8, N0 = 500, N = 6284,12708, 25572, 38444, 51276. Connected lines are tol = 10−2, 10−3, 10−4.potential error bound (—), velocity error bound (· · · ).
requires less time to obtain a given actual error for the same number of points
than the velocity error bound. This observation, and the closer match of requested
tolerance and actual error are the reasons that we use the potential bound.
CHAPTER 5
APPLICATIONS
In this chapter, the results of simulations performed using our algorithm are
presented. In all of the computations here, unless mentioned otherwise, the requested
tolerance was tol = 10−3, and the runtime parameters for the algorithm were N0 =
512 and pmax = 8. The smoothing factor was δ = 0.10.
5.1 Vortex Ring with Azimuthal Perturbation
This section presents the results of simulations of a perturbed rolling-up vortex
sheet. An azimuthal instability was introduced to the sheet by perturbing a flat
circular disk. In polar coordinates, the perturbation is of the form
p(r, θ) = ρ r2 cos(kθ)ez, (5.1)
where k is the perturbation wavenumber and ρ is the magnitude of the perturbation.
The r2 factor is present to smooth the perturbation at the origin. The perturba-
tion may also be considered as a function of α and θ, its initial magnitude being
proportional to sin2 α, since r = sinα.
After the sheet rolls up, the radius of the ring, the position of the core, is ap-
proximately 0.8, as seen in Figure 4.2. Recall from the linear stability analysis of
Section 2.3.2 that the stability of a vortex filament with respect to a perturbation
77
78
with wavenumber k depends only on k and δ/R. For δ = 0.10, and R = 0.8, δ/R
= 0.125. From Figure 2.8, a vortex filament with δ/R = 0.12 has an unstable mode
for k = 9. However, the presence of the rolls which are larger than δ presumably has
an effect of spreading the vorticity out more away from the core. This is analogous
to increasing δ, which lowers the wavenumber of the unstable mode. With this in
mind, simulations were performed with wavenumbers k ranging from 4 to 11. The
time step used was ∆t = 0.10, and the point insertion parameters ε1 and ε2 were
0.075 and 0.05 respectively. The value of ρ, the magnitude of the perturbation at
the edge of the disk, was 0.10.
Figure 5.1 shows a measure of the variance of the rings as a function of time. The
quantity plotted was obtained as follows. Each value of α corresponds to a filament,
which in our computations is perturbed from being circular. The average radius and
z position of the filament are computed. For each value of α, we compute the L2
distance from the filament to the circle whose radius and z position are the averages
just computed. The quantity plotted in Figure 5.1 is the L2 norm of this distance as
a function of λ1. The figure shows that the perturbation for the k = 4 and 5 modes
does not grow much. For the larger wave numbers, the disturbance has more growth,
peaking with the k = 10 perturbation.
To visualize the sheets, we plot the sheet positions for the k = 5 and 9 simulations.
These two values of k are representative of the behavior observed for other k values.
The position of the sheet for the wavenumber k = 5 at times t = 0, 2, 4, 6 is shown in
Figure 5.2. One can see from these images that the sheet is rolling up smoothly, the
perturbation having only a marginal effect on the evolution. This is as opposed to
the images in Figure 5.3, which shows the vortex sheet for the k = 9 simulation. In
this simulation, and the other high wavenumber simulations, the outer turns of the
79
sheet are smooth, but the core is becoming highly distorted. A depiction of the ring’s
core, for k = 5 and 9, is presented in Figure 5.4. The curves plotted are the filaments
that correspond to α > 0.8. Initially, these filaments were near the outer portion of
the disk. The distortion in the core for the k = 9 simulations as compared to the
k = 5 is clearly evident here. The bulging behavior of the sheet around the waves
is consistent with the simulations of Knio and Ghoniem [32] and the experiments
of Didden [19]. The bulges are also similar to the deformations found by Meiburg,
Lasheras, and Martin [44] in their study of azimuthal perturbations to a jet, which
was based upon experiments and numerical simulations.
It should be noted that the surfaces plotted in Figures 5.2 and 5.3 and the surface
plots which appear later in this chapter are the surfaces formed by the material curves
which coincided with the vortex lines of the sheets at t = 0. However, since we are
using a smoothed Biot-Savart kernel, they are not the actual vortex lines for t > 0.
5.2 Elliptical Vortex Ring
In this section, results from simulations of an elliptical vortex ring are presented.
The computations are similar to those of Dhanak and de Bernardinis [18] and Fer-
nandez et. al. [23]. The model used for the formation of an elliptical vortex ring is
to give an impulse to an elliptical disk and then to dissolve the disk away. As with a
circular disk, a free vortex sheet remains and rolls up into a vortex ring. Following
Dhanak and de Bernardinis [18], the circulation distribution for an elliptical disk is
taken to be
λ1 =
√
1 − x2
a2− y2
b2, (5.2)
80
0 2 4 60
0.05
0.1
0.15
k = 4
0 2 4 60
0.05
0.1
0.15
k = 5
0 2 4 60
0.05
0.1
0.15
k = 6
0 2 4 60
0.05
0.1
0.15
k = 7
0 2 4 60
0.05
0.1
0.15
k = 8
0 2 4 60
0.05
0.1
0.15
k = 9
0 2 4 60
0.05
0.1
0.15
t
k = 10
0 2 4 60
0.05
0.1
0.15
t
k = 11
Figure 5.1: Variance of perturbed vortex sheet. δ = 0.10, ρ = 0.10. k : wavenumberof perturbation, t : time.
81
Figure 5.2: Perturbed vortex sheet. k = 5. δ = 0.10, t = 0, 2, 4, 6.
82
Figure 5.3: Perturbed vortex sheet. k = 9. δ = 0.10, t = 0, 2, 4, 6.
83
−1 0 1−1
01
−2
−1
0
−1 0 1−1
01
−2
−1
0
−1 0 1−1
01
−2
−1
0
−1 0 1−1
01
−2
−1
0
−1 0 1−1
01
−2
−1
0
−1 0 1−1
01
−2
−1
0
−1 0 1−1
01
−2
−1
0
−1 0 1−1
01
−2
−1
0
Figure 5.4: Core of perturbed vortex sheet. k = 5, 9. δ = 0.10, t = 0, 2, 4, 6.
84
where the disk is the region
x2
a2+y2
b2≤ 1. (5.3)
The vortex filaments are ellipses with the same eccentricity as the elliptical disk. As
before, the α change of variable used is λ1 = cosα, leading to λ′1(α) = − sinα. Sim-
ulations were performed for disks with different eccentricities, which was controlled
by setting b = 1 and allowing a < 1 to vary. The ratio of the minor axis length to
the major axis length is a and the eccentricity is√
1 − a2. We present results for a
= 0.8, 0.6, 0.5. The insertion parameters ε1 and ε2 were both set to 0.05. The time
step used was ∆t = 0.05.
For values of a close to 1, an elliptical ring may be considered as a small pertur-
bation of a circular ring with wavenumber 2. From the linear stability analysis in
Section 2.3.2, we expect the perturbation to oscillate with constant magnitude. The
behavior is exhibited by the a = 0.8 computation, which is presented in Figure 5.5.
Initially, the disk is narrower in the direction coming out of and to the right of the
page. Thus, the filaments running along the front-right edge are stretched in com-
parison to the rest of the disk. This intensifies the vorticity and that is why the outer
turns have wrapped up and around more along this and its opposite edge. However,
the difference is not enough to disturb the core, which is rolling up smoothly.
The a = 0.6 and 0.5 computations are presented in Figure 5.6 and 5.7 respectively.
The orientation of these disks is the same as for the a = 0.8 disk. In the regions
where the fluid is moving most rapidly around the edge of the disk, the front-right
and back-left, the fluid is forced up over the disk towards the center. As the fluid
from either side approaches the center, it is forced up and away from the disk. This
is the cause of the protruding spikes on the sheets. The presence of these structures
85
make it difficult to study the sheet’s motion. This is because as the sheet stretches
to form the peaks, additional filaments are inserted, which increases the execution
time. For the a = 0.5 computation, it was started with under 7500 particles and at
time t = 6, it has 84,000 particles.
5.3 Colliding Vortex Rings
In this section, results of a simulation of oblique colliding vortex rings are pre-
sented. The configuration of vortex rings is based on experiments performed by
Schatzle [55]. In our computations, the rings are inclined from horizontal by 30 de-
grees. The centers of the initial circular vortex sheets are located at (±1, 0, 0). An
adaptive time-step procedure was used, with an initial ∆t = 0.10, although the time
steps never went below 0.07. The point insertion parameters ε1 and ε2 were 0.075
and 0.05 respectively.
Figure 5.8 shows the vortex sheets which represent the colliding vortex rings.
Figure 5.9 shows a cut-away of the same view, enabling one to see the rolling up
structure which is present. In the region where the rings have merged, the windings
of the sheet are flattened up against each other and are being pushed down. Because
of this stretching, a large number of filaments and particles are inserted into this
region, even though the vorticity amplitude is relatively low, as shown by the vorticity
isosurfaces in the next figures. At time t = 0, there were 14984 particles representing
the disks, and at time t = 4.5, the latest time in our runs, there were 891514 particles.
For this number of particles, we estimate that our fast algorithm is performing the
computations 60 times faster than direct summation. Even with the fast algorithm,
the computation took 32 hours to go from t = 4 to t = 4.5, so a direct summation
algorithm would take months.
86
Figure 5.5: Elliptical vortex sheet. a = 0.8. δ = 0.10, t = 0, 2, 4, 6.
87
Figure 5.6: Elliptical vortex sheet. a = 0.6. δ = 0.10, t = 0, 2, 4, 6.
88
Figure 5.7: Elliptical vortex sheet. a = 0.5. δ = 0.10, t = 0, 2, 4, 6.
89
Figures 5.10 through 5.13 show isosurfaces of the vorticity field, computed by
differentiating the integral (2.25) and evaluating it for positions x on a regular grid.
The values chosen for the isosurfaces are one- and two-thirds of the maximum initial
computed vorticity. Each figure shows the rings from a different view point for the
time sequence t = 0, 1, 2, 3, 4, 4.5. The first view is a perspective view with shading
on the surfaces, and the others are orthogonal projections. As the rings approach,
they initially pinch, and then they merge and this region flattens out. The connection
region then begins to stretch out. This is in qualitative agreement with Schatzle’s
experiment and the computations of Anderson and Greengard [1]. In Schatzle’s
experiments, the connection region disconnects and there is another connection and
subsequent disconnection which occurs at the bottom of the rings. Because of the
stretching and reconnection of vorticity, it is an open question whether or not a
vortex filament model can capture these later stages of the evolution.
Our simulations appear to have effectively captured the merger of the rings.
However, due to the large computational time, we were not able to explore the
parameter space. For instance, it would be of interest to know how the ring merger
depends upon the angle of inclination. We are also interested in knowing what
happens when δ → 0.
90
Figure 5.8: Vortex sheets modeling colliding disks. δ = 0.10, t = 0, 1, 2, 3, 4, 4.5.
91
Figure 5.9: Cut-away of vortex sheets modeling colliding disks. δ = 0.10, t = 0, 1,2, 3, 4, 4.5.
92
Figure 5.10: Vorticity isosurfaces of colliding vortex rings, perspective view. δ =0.10, t = 0, 1, 2, 3, 4, 4.5.
93
Figure 5.11: Vorticity isosurfaces of colliding vortex rings, front view. δ = 0.10, t =0, 1, 2, 3, 4, 4.5.
94
Figure 5.12: Vorticity isosurfaces of colliding vortex rings, side view. δ = 0.10, t =0, 1, 2, 3, 4, 4.5.
95
Figure 5.13: Vorticity isosurfaces of colliding vortex rings, top view. δ = 0.10, t =0, 1, 2, 3, 4, 4.5.
CHAPTER 6
CONCLUSIONS
6.1 Summary
A new algorithm has been presented for rapidly computing three-dimensional
vortex sheet motion. The main ingredients of the algorithm are the use of Taylor
series for particle-cluster interactions and a nested subdivision of space to create the
particle clusters. An important feature of the algorithm is the use of recurrences to
compute the expansion coefficients for particle-cluster interactions. New features of
the algorithm include its application to a non-harmonic three-dimensional kernel, its
adaptive subdivision of space and its adaptive error control. The majority of tree-
code algorithms previously developed for rapid computations in particle simulations
have been restricted to applications where the particle interaction kernel is harmonic.
Our algorithm overcomes this restriction by extending the Taylor series approach of
Draghicescu and Draghicescu [21] to the three-dimensional vortex blob kernel Kδ.
The subdivision of space, to obtain smaller particle clusters, takes into account the
local particle distribution by using the particles’ bounding box. When the previ-
ous algorithms subdivide cells, they do not take into account the particle’s positions.
Though there have been some algorithms which have only subdivided when there are
sufficiently many particles to warrant it, such as the adaptive multipole algorithm of
96
97
Carrier, Greengard, and Rokhlin [11], even these algorithms have not taken the par-
ticles’ positions within the cells into consideration when subdividing. The bounding
boxes also provide for series expansion points which yield good convergence. The
order of the expansion used for particle-cluster interactions, p, is chosen adaptively
and depends upon the selection of the expansion point, so good placement yields
lower values of p, which improves the algorithm’s performance.
The algorithm has been applied to study the dynamics of vortex rings which are
modeled as rolled-up vortex sheets. With the fast algorithm we are able to perform
simulations with 105−106 particles, which was not previously feasible. We performed
simulations of perturbed vortex rings, elliptical vortex rings, and the collision of two
vortex rings. In the simulations of the colliding vortex rings, the vorticity in the
rings appears to reconnect, due to superposition, even though the model does not
explicitly account for viscous effects.
The sheet motion is computed with a Lagrangian numerical method, comput-
ing the sheet’s velocity with a smoothed version of the Biot-Savart integral (2.22).
Discretization leads to a large system of differential equations which are solved with
a Runge-Kutta method. At each time step of the computation, we use the new
algorithm to compute the velocity of the discrete particles representing the sheet.
6.2 Directions for Future Work
There are a number of ways to extend this work, which fall into three categories,
investigating further the dynamics of the vortex sheet model for vortex rings, en-
hancing the algorithm, and applying the algorithm to other systems of equations.
The vortex sheet model for vortex ring formation appears to capture the process
of vortex reconnection. It would be useful to understand this better, which would
98
require more extensive runs and an exploration of the parameter space. For instance,
one issue is to determine how the dynamics depend on δ. It is also of interest to
extend the simulations to later times to see how the model performs.
In this thesis, the only flows that we have considered are vortex rings mod-
eled as rolled up vortex sheets. More general fluid flow problems can be studied
using smoothed vortex filament models as introduced by Chorin [12] and other
three-dimensional vortex methods as discussed by Leonard [37]. These numerical
methods reconstruct the velocity field from the vorticity field using the Biot-Savart
integral (2.6), which leads to an O(N 2) operation count, where N is the number of
computational elements. Our algorithm can be used to speed these computations as
was done for the vortex sheet problems we studied.
The motivation for using an asymptotically fast algorithm is the O(N 2) operation
count of direct summation. However, if N is not too large, then direct summation
is feasible. So it would be advantageous to use a vortex method which is more
efficient in terms of the number of discretizing particles that it uses. Though we
insert points and lines when the sheet stretches, we do not remove any when they
concentrate in a small region. If this could be done, then the execution time could be
lowered. One possibility for doing this is the removal of vortex hairpins as described
by Chorin [13, 14]. Another possibility is Lagrangian reparametrization. However,
it is not clear that a rolling-up vortex sheet can be resolved with a small number of
points, so these options may have only limited benefit for vortex sheet motion.
In terms of enhancing the algorithm, one direction to take is to use different
expansions than Taylor series for particle-cluster interactions. Two possible classes
are orthogonal polynomials and wavelets. An advantage of orthogonal polynomials
is that fewer terms would be needed to satisfy error tolerances. An advantage of
99
wavelets is that the approximant can be taken to be globally continuous, as opposed
to piecewise continuous as the current method yields. This may be advantageous
when the system being modeled is unstable. The main aspect of the algorithm
which needs to be generalized for these changes is the computation of the expansion
coefficients. If the coefficients are not computed efficiently, i.e. not in linear time
with respect to the number of terms in the expansion, then the performance of
the algorithm will be degraded. This is because coefficient computation will then
dominate the overall operation count for particle-cluster interactions. Another way
in which the algorithm can be improved is to use a better cell dividing technique.
The current technique subdivides cells by bisecting the cell’s bounding box. This
approach does not use any information about the internal structure of the particles
in the cell, such as how the particles are grouped. Thus, it may break up natural
clusters which span the cell’s mid-planes. An approach which detects such internal
structure could be beneficial.
In terms of studying different systems, the present algorithm can be used to
study other systems which are modeled with vortex sheets or the algorithm can be
generalized to study particle systems where the interaction kernel is different than
Kδ. One application that is of interest is the three-dimensional simulation of the
wake behind an airplane, modeled as a vortex sheet. For systems with different
kernels, certain aspects of the algorithm need to be modified, although the basic
idea of particle-cluster interactions and the subdivision of space are independent of
the kernel. The main aspect of the algorithm which would need to be generalized
is the computation of the expansion coefficients. However, a recurrence similar to
(3.27) exists for the Taylor coefficients of any function ψ which satisfies a linear
differential equation with polynomial coefficients. When such a differential equation
100
is differentiated n times and the Leibniz rule for differentiating a product is used, low
order derivatives of ψ do not appear because high order derivatives of the polynomial
coefficients vanish. Thus, the Taylor coefficients will satisfy a short recurrence. For
instance, consider the third-order Gaussian ψ = exp(−r3), which has been used as
a convolution function to smooth the Biot-Savart kernel [7, 32]. The function ψ
satisfies the differential equation
ψ′(r) + 3r2ψ(r) = 0, (6.1)
and its Taylor coefficients cn = ψ(n)(r)/n! satisfy the recurrence
cn + 3(r2cn−1 + 2rcn−2 + cn−3)/n = 0. (6.2)
So the Taylor coefficients could be computed rapidly. Thus, we believe the algorithm
can be extended to a wide class of systems.
APPENDICES
101
102
APPENDIX A
Notation
ak(x, y) Taylor coefficients for particle-cluster interaction
bk(τ) particle moments for cell τ
ck(x, y) Taylor coefficients of ψ
ck Taylor coefficients of ψ1
h convergence factor for particle-cluster interaction, error = O(hp)
k wavenumber of vortex filament or ring perturbation
K(x,y) Biot-Savart kernel
Kδ(x,y) smoothed Biot-Savart kernel
N total number of particles in simulation
Nτ number of particles in a cluster
N0 maximum Nτ in an unsplit cell
p(x, t) fluid pressure
p order of the series truncation
pmax maximum admissible order
P (τ) parent of cell τ
rτ radius of cell τ about y
103
R smoothed distance from y to target particle
Sn sum of order n terms from particle-cluster expansion using Kδ
Tn sum of order n terms from particle-cluster expansion using ψ
u(x, t) fluid velocity
wi(t) product of λ2 finite differences and λ1 λ2 integration weights
x(λ1, λ2, t) position of vortex sheet
xi(t) discrete particle approximating position on vortex sheet
yj particles making up a cluster
y center of cell τ , expansion point for Taylor series
α reparametrization of λ1
δ smoothing parameter
ε1, ε2 insertion parameters in λ1, λ2 directions respectively
λ1 circulation parameter across vortex lines in vortex sheet
λ2 parameter along a vortex line
ν fluid viscosity
ρ magnitude of vortex ring perturbation
σp sum of absolute value of weights in a cell
τ cell containing a cluster of particles
φ(x, t) velocity potential
φJ(λ1, λ2) jump in φ across vortex sheet
Φ(x, t) flow map
ψ potential function for Kδ
ψ1 one-dimensional analogue of ψ
ω(x, t) vorticity
[·] jump in · across vortex sheet
104
APPENDIX B
Cylindrical Coordinate Identities
Change of Basis Formulas
er(θ) = cos(θ − θ) er(θ) + sin(θ − θ) eθ(θ) (B.1)
eθ(θ) = − sin(θ − θ) er(θ) + cos(θ − θ) eθ(θ) (B.2)
Derivatives of Basis Vectors
d
dθer(θ) = eθ(θ) (B.3)
d
dθeθ(θ) = −er(θ) (B.4)
Cross Product Relationships
er × eθ = ez eθ × er = −ez (B.5)
eθ × ez = er ez × eθ = −er (B.6)
ez × er = eθ er × ez = −eθ (B.7)
105
APPENDIX C
Details from Circular Filament Analysis
This appendix contains some details of the analysis of a circular vortex filament
from Section 2.3.2.
C.1 Propagation Speed of Circular Filament
The initial conditions, in cylindrical coordinates, are
y(λ, 0) = (R, λ, 0). (C.1)
The evolution equation for y(λ, t) is
∂y
∂t(λ, t) =
−1
4π
∫ 2π
0Kδ(y(λ, t),y(λ, t)) × ∂y
∂λ(λ, t) dλ, (C.2)
where
Kδ(x,y) = − 1
4π
x − y
(|x − y|2 + δ2)3/2. (C.3)
To evaluate the integral in (C.2), we express the integrand in terms of the cylindrical
basis at (R, λ, 0). This ensures that the basis elements are independent of λ, the
variable of integration, so that they can be factored out of the integral. The first
106
expression to compute is y(λ, 0) − y(λ, 0),
y(λ, 0) − y(λ, 0) = Rer(λ) −Rer(λ) (C.4)
= Rer(λ) −R(cos(λ− λ)er(λ) + sin(λ− λ)eθ(λ)) (C.5)
= R(1 − cos(λ− λ))er(λ) − R sin(λ− λ)eθ(λ). (C.6)
Thus, the denominator in Kδ(y(λ, 0),y(λ, 0)) is
(|y(λ, 0) − y(λ, 0)|2 + δ2
)3/2
=(R2(1 − cos(λ− λ))2 +R2 sin2(λ− λ) + δ2
)3/2(C.7)
=(2R2(1 − cos(λ− λ)) + δ2
)3/2(C.8)
= R3(2(1 − cos(λ− λ)) + (δ/R)2
)3/2. (C.9)
The partial derivative term in the integrand is
∂
∂λRer(λ) = Reθ(λ) (C.10)
= R(− sin(λ− λ)er(λ) + cos(λ− λ)eθ(λ)). (C.11)
Dropping the λ dependence of the basis vectors, since all of vectors are based at
θ = λ, we have
(y(λ, 0) − y(λ, 0)) × ∂y
∂λ(λ, 0)
= R2((1 − cos(λ− λ))er − sin(λ− λ)eθ
)
×(− sin(λ− λ)er + cos(λ− λ)eθ
)
(C.12)
= R2((1 − cos(λ− λ)) cos(λ− λ) − sin2(λ− λ)
)ez (C.13)
= R2(cos(λ− λ) − 1
)ez (C.14)
107
Thus, the velocity of the filament is
U =ez
4πR
∫ 2π
0
1 − cos(λ− λ)(2(1 − cos(λ− λ)) + (δ/R)2
)3/2dλ (C.15)
=ez
4πR
∫ 2π
0
1 − cos λ(2(1 − cos λ) + (δ/R)2
)3/2dλ, (C.16)
as stated in Section 2.3.2.
C.2 Linearized Evolution Equations for Perturbation
When a perturbation p(λ, t) is added to a circular vortex filament, the pertur-
bation satisfies an integro-differential equation. As described in Section 2.3.2, we
expand p(λ, t) in terms of the cylindrical basis er(λ), eθ(λ) and ez, obtaining
p(λ, t) = pr(λ, t)er(λ) + pθ(λ, t)eθ(λ) + pz(λ, t)ez. (C.17)
When the evolution equation for p(λ, t) is linearized about the steady solution
p(λ, t) = 0, the result is
∂pr
∂t(λ) =
1
4πR2
∫ 2π
0
sin(λ− λ) ∂∂λpz(λ) + cos(λ− λ)(pz(λ) − pz(λ))
(2(1 − cos(λ− λ)) + (δ/R)2
)3/2dλ,
(C.18a)
∂pθ
∂t(λ) =
1
4πR2
∫ 2π
0
(1 − cos(λ− λ)) ∂∂λpz(λ) + sin(λ− λ)(pz(λ) − pz(λ))
(2(1 − cos(λ− λ)) + (δ/R)2
)3/2dλ,
(C.18b)
∂pz
∂t(λ) =
1
4πR2
∫ 2π
0
pr(λ) − pr(λ) + (1 − cos(λ− λ))(pr(λ) + pr(λ) + ∂∂λpθ(λ))
(2(1 − cos(λ− λ)) + (δ/R)2
)3/2
− sin(λ− λ)(pθ(λ) − pθ(λ) + ∂∂λpr(λ))
(2(1 − cos(λ− λ)) + (δ/R)2
)3/2
− 3(1 − cos(λ− λ))2(pr(λ) + pr(λ))(2(1 − cos(λ− λ)) + (δ/R)2
)5/2
+ 3(1 − cos(λ− λ)) sin(λ− λ)(pθ(λ) − pθ(λ))
(2(1 − cos(λ− λ)) + (δ/R)2
)5/2dλ.
(C.18c)
108
BIBLIOGRAPHY
[1] C. Anderson and C. Greengard. The vortex ring merger problem at infiniteReynolds number. Comm. Pure Appl. Math., 42(8):1123–1139, 1989.
[2] C. R. Anderson. An implementation of the fast multipole method withoutmultipoles. SIAM J. Sci. Statist. Comput., 13(4):923–947, 1992.
[3] A. Appel. An efficient program for many-body simulation. SIAM J. Sci. Statist.Comput., 6(1):85–103, 1985.
[4] H. Aref and I. Zawadzki. Linking of vortex rings. Nature, 354(6348):50–53,1991.
[5] J. Barnes and P. Hut. A hierarchical O(N logN) force-calculation algorithm.Nature, 324(6096):446–449, 1986.
[6] G. K. Batchelor. An Introduction to Fluid Dynamics. Cambridge UniversityPress, 1967.
[7] J. T. Beale and A. Majda. High order accurate vortex methods with explicitvelocity kernels. J. Comput. Phys., 58(2):188–208, 1985.
[8] G. Birkhoff. Helmholtz and Taylor instability. In Proc. Sympos. Appl. Math.,Vol. XIII, pages 55–76, 1962.
[9] G. L. Brown and A. Roshko. On density effects and large structure in turbulentmixing layers. J. Fluid Mech., 64:775–816, 1974.
[10] R. Caflisch. Mathematical analysis of vortex dynamics. In Mathematical aspectsof vortex dynamics (Leesburg, VA, 1988), pages 1–24, 1989.
[11] J. Carrier, L. Greengard, and V. Rokhlin. A fast adaptive multipole algorithmfor particle simulations. SIAM J. Sci. Statist. Comput., 9(4):669–686, 1988.
[12] A. J. Chorin. The evolution of a turbulent vortex. Comm. Math. Phys.,83(4):517–535, 1982.
[13] A. J. Chorin. Hairpin removal in vortex interactions. J. Comput. Phys., 91(1):1–21, 1990.
109
[14] A. J. Chorin. Hairpin removal in vortex interactions II. J. Comput. Phys.,107(1):1–9, 1993.
[15] A. J. Chorin and P. S. Bernard. Discretization of a vortex sheet, with an exampleof roll-up. J. Comput. Phys., 13(3):423–429, 1973.
[16] S. C. Crow. Stability theory for a pair of trailing vortices. AIAA J., 8(12):2172–2179, 1970.
[17] J. Delort. Existence de nappes de tourbillon en dimension deux. J. Amer. Math.Soc., 4(3):553–586, 1991.
[18] M. R. Dhanak and B. de Bernardinis. The evolution of an elliptic vortex ring.J. Fluid Mech., 109:189–216, 1981.
[19] N. Didden. Investigation of laminar, unstable vortex rings by means of laser-Doppler anemometry. Mitt. Max-Planck-Institut Stromungsforschung Aero.Versuch., 64, 1977.
[20] N. Didden. On the formation of vortex rings: rolling-up and production ofcirculation. Z. Angew. Math. Phys., 30:101–116, 1979.
[21] C. Draghicescu and M. Draghicescu. A fast algorithm for vortex blob interac-tions. J. Comput. Phys., 116(1):69–78, 1995.
[22] A. Erdelyi, W. Magnus, F. Oberhettinger, and F. Tricomi. Higher Transcen-dental Functions, volume II. McGraw-Hill, 1953.
[23] V. M. Fernandez, N. J. Zabusky, V. M. Gryanik, and V. M. Gryanik. Vortex in-tensification and collapse of the Lissajous-elliptic ring: single- and multi-filamentBiot-Savart simulations and visiometrics. J. Fluid Mech., 299:289–331, 1995.
[24] L. Greengard and V. Rokhlin. A fast algorithm for particle simulations. J.Comput. Phys., 73(2):325–348, 1987.
[25] L. Greengard and V. Rokhlin. The rapid evaluation of potential fields in threedimensions. In C. Anderson and C. Greengard, editors, Vortex methods (LosAngeles, CA, 1987), number 1360 in Lecture Notes in Mathematics, pages 121–141. Springer-Verlag, 1988.
[26] L. Greengard and V. Rokhlin. A new version of the fast multipole method for theLaplace equation in three dimensions. Research Report 1115, Yale UniversityDepartment of Computer Science, 1996.
[27] R. W. Hockney and J. W. Eastwood. Computer Simulations Using Particles.McGraw-Hill, New York, 1981.
[28] Y. Kaneda. A representation of the motion of a vortex sheet in a three-dimensional flow. Phys. Fluids A, 2(3):458–461, 1990.
110
[29] B. W. Kernighan and D. M. Ritchie. The C Programming Language. PrenticeHall, 2 edition, 1988.
[30] S. Kida, M. Takaoka, and F. Hussain. Reconnection of two vortex rings. Phys.Fluids A, 1(4):630–632, 1989.
[31] S. Kida, M. Takaoka, and F. Hussain. Collision of two vortex rings. J. FluidMech., 230:583–646, 1991.
[32] O. Knio and A. Ghoniem. Numerical study of a three-dimensional vortexmethod. J. Comput. Phys., 86(1):75–106, 1990.
[33] R. Krasny. Desingularization of periodic vortex sheet roll-up. J. Comput. Phys.,65(2):292–313, 1986.
[34] R. Krasny. A study of singularity formation in a vortex sheet by the point-vortexapproximation. J. Fluid Mech., 167:65–93, 1986.
[35] C. H. Krutzsch. Uber eine experimentel bebachtete erscheinung an wirbelringenbei ihrer translatorischen bewegung in wirklichen flussigkeiten. Ann. Phys.,35(5):497–523, 1939.
[36] H. Lamb. Hydrodynamics. Dover Publications, New York, 6 edition, 1945.
[37] A. Leonard. Computing three-dimensional incompressible flows with vortexelements. Ann. Rev. Fluid. Mech., 17:523–559, 1985.
[38] A. Lifschitz, W. Suters, and J. T. Beale. The onset of instability in exact vortexrings with swirl. J. Comput. Phys., 129(1):8–29, 1996.
[39] J. Liu and Z. Xin. Convergence of vortex methods for weak solutions to the 2-DEuler equations with vortex sheet data. Comm. Pure Appl. Math., 48(6):611–628, 1995.
[40] A. J. Majda. The interaction of nonlinear analysis and modern applied math-ematics. In Proceedings of the International Congress of Mathematicians, Vol.I, II (Kyoto, 1990), pages 175–191, 1991.
[41] A. J. Majda. Remarks on weak solutions for vortex sheets with a distinguishedsign. Indiana Univ. Math. J., 42(3):921–939, 1993.
[42] T. Maxworthy. The structure and stability of vortex rings. J. Fluid Mech.,51:15–32, 1972.
[43] T. Maxworthy. Some experimental studies of vortex rings. J. Fluid Mech.,81:465–495, 1977.
[44] E. Meiburg, J. C. Lasheras, and J. E. Martin. Experimental and numericalanalysis of the three-dimensional evolution of an axisymmetric jet. In TurbulentShear Flows 7 (Stanford University, USA, 1989), pages 195–208, 1991.
111
[45] D. W. Moore. Finite amplitude waves on aircraft trailing vortices. AeronauticalQuarterly, 23:307–314, 1972.
[46] D. W. Moore. The spontaneous appearance of a singularity in the shape of anevolving vortex sheet. Proc. Roy. Soc. London Ser. A, 365(1720):105–119, 1979.
[47] M. Nitsche and R. Krasny. A numerical study of vortex ring formation at theedge of a circular tube. J. Fluid Mech., 276:139–161, 1994.
[48] D. I. Pullin. The large-scale structure of unsteady self-similar rolled-up vortexsheets. J. Fluid Mech., 88(3):401–430, 1978.
[49] A. Pumir and R. M. Kerr. Numerical simulation of interacting vortex tubes.Phys. Rev. Lett., 58(16):1636–1639, 1987.
[50] A. Pumir and E. D. Siggia. Vortex dynamics and the existence of solutions tothe Navier-Stokes equations. Phys. Fluids, 30(6):1606–1626, 1987.
[51] L. Rosenhead. The spread of vorticity in the wake behind a cylinder. Proc.Roy. Soc. Ser. A, 127:590–612, 1930.
[52] P. G. Saffman. The number of waves on unstable vortex rings. J. Fluid Mech.,84(4):625–639, 1978.
[53] P. G. Saffman. A model of vortex reconnection. J. Fluid Mech., 212:395–402,1990.
[54] J. K. Salmon and M. S. Warren. Skeletons from the treecode closet. J. Comput.Phys., 111(1):136–155, 1994.
[55] P. R. Schatzle. An experimental study of fusion of vortex rings. PhD thesis,California Institute of Technology, 1987.
[56] K. Shariff and A. Leonard. Vortex rings. Ann. Rev. Fluid. Mech., 24:235–279,1992.
[57] G. I. Taylor. Formation of a vortex ring by giving an impulse to a circular diskand then dissolving it away. J. Appl. Phys., 24(1):104, 1953.
[58] J. J. Thomson and H. F. Newall. On the formation of vortex rings by dropsfalling into liquids, and some allied phenomena. Proc. Roy. Soc. Ser. A, 39:417–436, 1885.
[59] G. Tryggvason, W. J. A. Dahm, and K. Sbeih. Fine structure of vortex sheetrollup by viscous and inviscid simulation. J. Fluids Eng., 113(1):31–36, 1991.
[60] L. van Dommelen and E. A. Rundensteiner. Fast, adaptive summation of pointforces in the two-dimensional Poisson equation. J. Comput. Phys., 83(1):126–147, 1989.
112
[61] S. E. Widnall, D. B. Bliss, and C. Tsai. The instability of short waves on avortex ring. J. Fluid Mech., 66:35–47, 1974.
[62] S. E. Widnall and J. P. Sullivan. On the stability of vortex rings. Proc. Roy.Soc. London Ser. A, 332:335–353, 1973.
[63] G. S. Winckelmans. Topics in vortex methods for the computation of three- andtwo-dimensional incompressible unsteady flows. PhD thesis, California Instituteof Technology, 1989.
[64] G. S. Winckelmans, J. K. Salmon, A. Leonard, and M. S. Warren. Three-dimensional vortex particle and panel methods: fast tree-code solvers with ac-tive error control for arbitrary distributions/geometries. In Forum on VortexMethods for Engineering Applications (Albuquerque, NM, 1995), pages 23–43,1995.
[65] F. Zhao. An O(N) algorithm for three-dimensional N -body simulations. Mas-ter’s thesis, Massachusetts Institute of Technology, 1987.
ABSTRACT
A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS
TO VORTEX SHEET ROLL-UP
by
Keith Lindsay
Chair: Robert Krasny
An algorithm is presented for the rapid computation of vortex sheet motion in three-
dimensional fluid flow. The equations governing vortex sheet motion, considered in
Lagrangian form, are desingularized and discretized, resulting in a system of equa-
tions for the N discretizing particles. Since the particles interact pairwise, evaluating
the velocities by direct summation requires O(N 2) operations, which becomes pro-
hibitively expensive as N increases. Based on measured execution times, the new
algorithm computes the particle interactions with O(N logN) operations. The ad-
ditional memory required by the algorithm is less than 60% of the memory used
by a direct summation algorithm. The algorithm extends Draghicescu’s algorithm
from two to three space dimensions. The main ingredients are the replacement of
particle-particle interactions with particle-cluster interactions which are based on
Cartesian Taylor series expansions and the use of an adaptive tree-based subdivision
of space to create the particle clusters. An important feature of the algorithm is
1
the use of recurrences to compute the expansion coefficients. The recurrences are a
generalization of those used by Draghicescu. The new features of the algorithm are
its application to a non-harmonic three-dimensional kernel, its adaptive subdivision
of space and adaptive error control. The algorithm is used to study the dynamics
of vortex rings which are modeled as rolling up vortex sheets. An adaptive point
insertion algorithm is used to ensure that the vortex sheets are accurately resolved
as they stretch. The problems considered are azimuthal vortex ring instabilities, the
evolution of an elliptical vortex ring, and the collision of two vortex rings. In the last
problem, the vorticity in the rings appears to connect, due to superposition, even
though the vortex sheet model does not explicitly account for viscous effects and the
sheets themselves do not connect.