A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN...

126
A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy (Mathematics) in The University of Michigan 1997 Doctoral Committee: Professor Robert Krasny, Chair Assistant Professor Peter Smereka Associate Professor Gr´ etar Tryggvason Professor Arthur Wasserman Professor Michael Weinstein

Transcript of A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN...

Page 1: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 2: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted
Page 3: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

c© Keith Lindsay 1997All Rights Reserved

Page 4: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

This thesis is dedicated to the memory of Bruce Lindsay.I miss you and think of you often.

ii

Page 5: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 6: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 7: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 8: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 9: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 10: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 11: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 12: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 13: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 14: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 15: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 16: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 17: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 18: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

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.

Page 19: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 20: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

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.

Page 21: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 22: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 23: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 24: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

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

Page 25: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 26: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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)

Page 27: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 28: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 29: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 30: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 31: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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) =

Page 32: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

20

y(2π, t). The filament evolves according to the equation

∂y

∂t(λ, t) =

−1

∫ 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.

Page 33: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 34: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

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)

Page 35: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 36: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 37: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 38: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 39: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 40: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 41: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 42: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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 :

Page 43: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 44: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 45: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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,

Page 46: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 47: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 48: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 49: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 50: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 51: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 52: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 53: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 54: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

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)

Page 55: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 56: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 57: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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)

Page 58: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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)

Page 59: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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 :

Page 60: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 61: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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)

Page 62: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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).

Page 63: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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)

Page 64: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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)

Page 65: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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)

Page 66: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

(|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

{−(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)

Page 67: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 68: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 69: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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 τ

Page 70: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 71: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 72: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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,

Page 73: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

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

Page 74: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 75: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 76: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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).

Page 77: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 78: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 79: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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)‖.

Page 80: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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,

Page 81: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 82: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 83: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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 (· · · ).

Page 84: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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 (· · · ).

Page 85: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 86: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 87: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 88: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 89: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 90: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 91: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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)

Page 92: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 93: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

81

Figure 5.2: Perturbed vortex sheet. k = 5. δ = 0.10, t = 0, 2, 4, 6.

Page 94: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

82

Figure 5.3: Perturbed vortex sheet. k = 9. δ = 0.10, t = 0, 2, 4, 6.

Page 95: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 96: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 97: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 98: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

86

Figure 5.5: Elliptical vortex sheet. a = 0.8. δ = 0.10, t = 0, 2, 4, 6.

Page 99: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

87

Figure 5.6: Elliptical vortex sheet. a = 0.6. δ = 0.10, t = 0, 2, 4, 6.

Page 100: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

88

Figure 5.7: Elliptical vortex sheet. a = 0.5. δ = 0.10, t = 0, 2, 4, 6.

Page 101: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 102: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

90

Figure 5.8: Vortex sheets modeling colliding disks. δ = 0.10, t = 0, 1, 2, 3, 4, 4.5.

Page 103: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

91

Figure 5.9: Cut-away of vortex sheets modeling colliding disks. δ = 0.10, t = 0, 1,2, 3, 4, 4.5.

Page 104: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

92

Figure 5.10: Vorticity isosurfaces of colliding vortex rings, perspective view. δ =0.10, t = 0, 1, 2, 3, 4, 4.5.

Page 105: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

93

Figure 5.11: Vorticity isosurfaces of colliding vortex rings, front view. δ = 0.10, t =0, 1, 2, 3, 4, 4.5.

Page 106: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

94

Figure 5.12: Vorticity isosurfaces of colliding vortex rings, side view. δ = 0.10, t =0, 1, 2, 3, 4, 4.5.

Page 107: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

95

Figure 5.13: Vorticity isosurfaces of colliding vortex rings, top view. δ = 0.10, t =0, 1, 2, 3, 4, 4.5.

Page 108: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 109: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 110: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 111: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 112: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 113: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

APPENDICES

101

Page 114: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 115: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 116: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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)

Page 117: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

∫ 2π

0Kδ(y(λ, t),y(λ, t)) × ∂y

∂λ(λ, t) dλ, (C.2)

where

Kδ(x,y) = − 1

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

Page 118: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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)

Page 119: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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)

Page 120: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 121: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 122: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 123: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 124: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.

Page 125: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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

Page 126: A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS ... · A THREE-DIMENSIONAL CARTESIAN TREE-CODE AND APPLICATIONS TO VORTEX SHEET ROLL-UP by Keith Lindsay A dissertation submitted

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.