A Numerical Study of Vortex ... Two-Dimensional Incompressible Flows Georgios Papaioannou

advertisement
A Numerical Study of Vortex Method Schemes for
Two-Dimensional Incompressible Flows
by
Georgios Papaioannou
@
Submitted to the Department of Ocean Engineering
and
Department of Aeronautics and Astronautics
MASSACHUSETT9-NSTTUTE
OFTECHNOLOGY
in partial fulfillment of the requirements for the degrees of
Master of Science
NOV2 7 2001
at the
MASSACHUSETTS INSTITUTE OF TECHNOLOGY
LIBRARIES
September 2001
Massachusetts Institute of Technology 2001. All rights reser ved.
BARKER
ATh
Author ......
Department of Ocean Engineering
and
Departme nt of Aeronautics and Astronautics
QlI
//2
August 9, 2001
Certified by...
/
/
................
Michael Triantafyllou
Professor of Ocean Engineering
Thesis Supervisor
Certified by.
(
Sheila E. Widnall
Professor of Aeronautics and Astronautics
Thesis Supervisor
Certified by......
.
A
.....................................
Dick K. P. Yue
Professor of Ocean Engineering
Thesis Supervisor
A ccepted by
......................
Professor Henrik Schmidt
Chairman, Department Committee on Graduate Students
A Numerical Study of Vortex Method Schemes for
Two-Dimensional Incompressible Flows
by
Georgios Papaioannou
Submitted to the Department of Ocean Engineering
and
Department of Aeronautics and Astronautics
on August 9, 2001, in partial fulfillment of the
requirements for the degrees of
Master of Science
Abstract
Vortex methods have been an alternative to Eulerian methods for the calculation of
engineering flows. Their inherent adaptivity as well as the fact that the pressure
is decoupled from the evolution equations are two of the main reasons that add to
the popularity of this class of methods. However there are also some drawbacks in
these methodologies. Some of those drawbacks have to do with their efficiency as
well as implementation issues. Some times it is not clear when someone is within
the mathematical framework of the method or has turned them into a modeling tool.
In some cases it seems that the convergence proved by mathematicians completely
analytically and with several assumptions regarding the field don't show up in practice
especially for more complicated flows or flows involving complex geometries. In this
thesis we attempt to answer many of those questions, prove numerical convergence of
the various schemes used, investigate the effect of the choice of input parameters and
decisions. Furthermore we propose new data-structures and new schemes to alleviate
a lot of the implementation problems of the methods. The developed codes are tested
in problems with analytic solutions or solutions obtained by other methods. In some
cases different alternatives are compared and conclusions are reached as of what is
better for what case. Some schemes are included without having been implemented
for completeness of text and to inform the reader about more available options.
2
Thesis Supervisor: Michael Triantafyllou
Title: Professor of Ocean Engineering
Thesis Supervisor: Sheila E. Widnall
Title: Professor of Aeronautics and Astronautics
Thesis Supervisor: Dick K. P. Yue
Title: Professor of Ocean Engineering
3
Dedication
Dedicated to my mother Sofi.
4
Acknowledgments
I would like to express my gratitude to my thesis supervisors, Professor Michael Triantafyllou, Professor Dick Yue and Professor Sheila Widnall.
Professor Triantafyllou for his support in my endeavors and his always accurate and
focused advice and wisdom. Professor Yue for his ability to stimulate my thinking
and inspire me with his energy and ingenuity. Professor Widnall for being a great
teacher, patient and always willing to share her precious time.
Special thanks to my parents and sister for their love and encouragement. To them I
owe great deal of everything I have achieved. I am especially grateful to Hongye Liu
for being more than a good friend and colleague and for all we have shared together,
besides the same office.
I would also like to thank all my friends for the relaxing moments we spent together.
I owe thanks to Fred Baker and Kelli Hendrickson, system administrators of the Design Laboratory and Vortical Flow Research Laboratory respectively, for maintaining
the infrastructure that I used to complete my work.
Before all I thank God for making it possible.
The present work was supported by ONR grant N00014-95-1-0106, monitored by Dr.
T.F. Swean Jr.
5
Contents
1
2
Introduction
13
1.1
Introductory Remarks
. . . . . . . . . . . . . . . . . . . . . . . . . .
13
1.2
Literature Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
1.3
Objectives of Present Work
22
. . . . . . . . . . . . . . . . . . . . . . .
General Formulation of Vortex Methods
23
2.1
The Equations of Motion . . . . . . . . . . . . . . . . . . . . . . . . .
23
2.2
Vortex M ethods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
2.2.1
Space Discretization
. . . . . . . . . . . . . . . . . . . . . . .
26
2.2.2
Time Discretization . . . . . . . . . . . . . . . . . . . . . . . .
28
3 The Diffusion Equation
3.1
The Method of Random Walks
30
. . . . . . . . . . . . . . . . . . . . .
30
3.1.1
One-Dimensional Random Walk . . . . . . . . . . . . . . . . .
30
3.1.2
Diffusion in one Dimension Semi-Infinite Domain by the Method
of Gradient Random Walk . . . . . . . . . . . . . . . . . . . .
32
3.1.3
Diffusion of a Point Vortex in Two-Dimensional Flow . . . . .
39
3.1.4
Random Number Generation
. . . . . . . . . . . . . . . . . .
48
3.2
The Method of Core Expansion . . . . . . . . . . . . . . . . . . . . .
49
3.3
The Particle Strength Exchange . . . . . . . . . . . . . . . . . . . . .
50
3.3.1
50
Infinite Dom ain . . . . . . . . . . . . . . . . . . . . . . . . . .
52
4 The Convection Equations
6
4.1
Vortex In Cell Method . . . . . . . . . . . . . . . . . . . . . . . . . .
53
. . . . . . . . . . . . . . . .
53
4.1.1
Theory of Vortex in Cell Method
4.1.2
Accuracy and Performance of the VIC Method
. . . . . . . .
55
4.1.3
Application - Two rotating vortices in proximity . . . . . . . .
64
4.2
The Method of Local Corrections . . . . . . . . . . . . . . . . . . . .
70
4.3
The Method of Fast Multipoles . . . . . . . . . . . . . . . . . . . . .
74
4.3.1
Basic Definitions and Notation
. . . . . . . . . . . . . . . . .
74
4.3.2
Formulation and Method Outline . . . . . . . . . . . . . . . .
76
4.3.3
Data Structure and Implementation . . . . . . . . . . . . . . .
80
4.3.4
Results and Discussion . . . . . . . . . . . . . . . . . . . . . .
89
104
5 Vorticity Redistribution
5.1
6
Merging and Splitting of Point Vortices . . . . . . . . . . . . . . . . . 105
. . . . . . . . . . . . . . . . . . . . . . . . . 105
5.1.1
Splitting Scheme
5.1.2
Merging Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . 107
5.2
Beale's Redistribution Method . . . . . . . . . . . . . . . . . . . . . .
112
5.3
Interpolation Kernels . . . . . . . . . . . . . . . . . . . . . . . . . . .
114
Boundary Conditions and Vorticity Generation
6.1
6.2
Boundary Element Methods . . . . . . . . . . . . . . . . . . . . . . .
117
6.1.1
The Source Panel Method . . . . . . . . . . . . . . . . . . . .
120
6.1.2
No Slip Boundary Condition Incorporated . . . . . . . . . . .
121
6.1.3
Martensen's Method . . . . . . . . . . . . . . . . . . . . . . .
124
6.1.4
Numerical Results
. . . . . . . . . . . . . . . . . . . . . . . .
127
Viscous Boundary Conditions . . . . . . . . . . . . . . . . . . . . . .
133
135
7 Loads Calculation
8
117
7.1
Pressure Distribution . . . . . . . . . . . . . . . . . . . . . . . . . . .
135
7.2
Force Calculation from Vorticity Momentum . . . . . . . . . . . . . .
137
138
Concluding Remarks
8.1
Sum m ary
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
138
8.2
Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
142
143
A Geometric Algorithms
A.1 Determining if a vortex has penetrated the boundary . . . . . . . . .
143
A.2 Finding the nearest panel to a point . . . . . . . . . . . . . . . . . . .
144
A.3 Reflecting it back into the flow . . . . . . . . . . . . . . . . . . . . . .
146
8
List of Figures
3-1
One Dimensional Diffusion of a Passive Scalar on a Semi Infinite Rod.
3-2
First Five plots show Evolution of diffusion each plot for different time
34
step. The sixth plot shows in logarithmic axes the error as a function
of particle number, parametricaly for various At.
3-3
. . . . . . . . . . .
36
First Five plots shows Evolution of diffusion each plot for different
number of particles. The sixth plot shows in logarithmic axes the error
as a function of time step, parametricly for various numbers of particles. 37
3-4
Diffusing Point Vortex for v = 10-6. . . . . . . . . . . . . . . . . . . .
3-5
Circulation profiles at t=1.0. V - 10-6 for various time steps. Parametric is the Number of particles
3-6
. . . . . . . . . . . . . . . . . . . .
44
Logarithmic Plots of the relative error for circulation, impulse and
radius of gyration.
3-8
43
Circulation profiles at t=1.0. V = 10-6 for various Number of Particles.
Parametric is the time step At. . . . . . . . . . . . . . . . . . . . . .
3-7
42
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
Systematic study of error in circulation, linear impulse, and radius of
gyration in the L,, for [At x a] parameter space. A constant number
of Np=100 particles was used. . . . . . . . . . . . . . . . . . . . . . .
46
4-1
Two vortices of equal strength rotating in circular trajectory. . . . . .
56
4-2
Grid Refinement Dependencies for Vortex In Cell Calculation of two
vortices of equal strength F = 1, and distance d=1 from each other. .
4-3
57
Grid truncation dependencies for Vortex In Cell Calculation of two
vortices of equal strength F = 1, and distance d=1 from each other
9
.
59
4-4
Average execution time per time step as a function of the number of
particles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-5
61
Upper plot shows radius of gyration as a function of time for different
grid spacings. Lower plot shows radius of gyration at t=5 as a function
of the grid size. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-6
Interaction of two vortices with F = 1.0 each represented by 300 vortex
blobs. (s= 0.10) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-7
Interaction of two vortices with F
=
4-9
65
1.0 each represented by 300 vortex
blobs. (s= 0.15) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4-8
63
66
Interaction of two vortices with F = 1.0 each represented by 300 vortex
blobs. (s= 0.20) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
Vorticity contours of two interacting vortices. (s=0.10)
. . . . . . . .
68
. .
83
. . . . . .
84
. . . . . . . . .
86
4-10 Example of 4 times non-uniformly refined computational domain.
4-11 Tree structure corresponding to mesh shown in figure 4-10
4-12 Example of skipping for efficient horizontal scanning
4-13 Expand the tet-digits of the tet-number id of the cell into two logical
bits and arrange them vertically. Then form two binary numbers for
each cell that correspond to the integers (ij) of the logical grid.
. . .
4-14 Mesh refinement of 4 levels at different stages of the vortices motion.
4-15 Pointwise error of the MFM as a function of the expansion order.
. .
88
91
92
4-16 Data structure of different level of maximum refinements corresponding
to the sam e tim e. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
93
4-17 Pointwise error over two periods and CPU time per time step as a
function of the refinement levels used. . . . . . . . . . . . . . . . . . .
94
4-18 Snapshots of vorticity contours of the evolution of two rotating vortices
each represented by 500 vortex blobs and the corresponding MFM tree. 97
4-19 Snapshots of vorticity contours of the evolution of two rotating vortices
each represented by 500 vortex blobs and the corresponding MFM tree. 98
4-20 Snapshots of vorticity contours of the evolution of two rotating vortices
each represented by 500 vortex blobs and the corresponding MFM tree. 99
10
4-21 Average execution time per time step as a function of the number of
particles in real and logarithmic axes for MFMP and direct calculation. 100
4-22 Pointwise error and average execution time per time step over two
periods and CPU time per time step as a function of the expansion
order for the case of two vortices each represented by 10 vortex blobs.
101
4-23 Particle positions at the end of 1 period of rotation for different number
of particles.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
121
6-1
Representation of non-lifting body with source panels . . . . . . . . .
6-2
Check for leakage flow with the Dirichlet boundary condition in Martensen's
m ethod.
6-3
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Hess & Smith .vs. Martensen's method for a NACA 0012 airfoil at
a = 0 0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6-4
128
Hess & Smith .vs. Martensen's method for a NACA 0012 airfoil at
a = 50. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
6-5
Hess & Smith .vs. Martensen's method for a NACA 0012 airfoil at
a = 100. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
130
A-1 The method of ray crossing for determining if a point is contained in
a general polygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
144
List of Tables
3.1
Summary of Run Parameters for Semi-Infinite Rod with Dirichlet Boundary conditions. At denotes the time step, Np the number of particles,
and v the diffusivity. . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2
35
Slopes of best fit first order polynomials indicating rates of convergence.
In the left column is the constant quantity and on the right column
the slope.
4.1
38
Correspondence of Tet-Ids to Integer Couple for Cells in the Mesh of
Figure 4-10
5.1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
84
. . .
109
Extreme values of equation 5.17 for use with merging algorithm
12
Chapter 1
Introduction
1.1
Introductory Remarks
The Navier-Stokes equations that describe the motion of a Newtonian fluid with appropriate boundary conditions do not have a general analytic solution. Only a few
special cases can be solved analytically. The non-linearity that renders them insolvable is also the one responsible for the most interesting flow properties. The solution
to the Navier-Stokes equations are sought numerically. Computing requirements increase as the Reynolds number increases, because of the finer mesh required to capture
the smaller scale phenomena.
Many incompressible flows are characterized by regions of concentrated vorticity
embedded in irrotational fluid. The inviscid motion of the vorticity in these regions
is given by the local fluid velocity which in turn is determined kinematically from the
vorticity field. Thus it is mathematically correct to consider inviscid fluid dynamics
in terms of parcels of vorticity which induce motion on each other.
This is the principal idea behind the vortex methods and it constitutes a distinct
alternative to the Eulerian grid based schemes.
As it is clear from above, vortex
methods focus on the evolution of the vorticity field of a flow. All of the vorticity is
attached to the computational elements that are convected with the local fluid velocity in a Lagrangian manner. This gives vortex methods an inherent adaptivity as by
13
construction it helps the resolution of areas of vorticity and saves resources from the
parts of the domain that are irrotational. Moreover, the far field boundary condition
is exactly satisfied.
Another important advantage of this family of methods, as we will show later in the
thesis, is the decoupling of the pressure from the evolution equations.
Vortex methods however have a number of drawbacks that have prevented them
from successfully competing with Eulerian methods for a wide variety of flows. Some
of those drawbacks have to do with the efficiency of the method. When a large number
of particles is present in the flow calculating the interactions among them becomes
costly. Several mathematical attempts were made to make the methods more efficient
many of which have been very successful. When applied with care those methods can
significantly improve efficiency with a minor compromise in accuracy. The trade-off
between accuracy and efficiency depends on the selection of the input parameters.
Some of those parameters are additional to the input parameters that describe the
physical problem and have to do with the technique itself.
The accurate representation of viscous effects in the context of vortex methods has
also received a lot of attention in the past.
Many of schemes commonly used seem to suffer limitations and their mathematically
proven properties in many cases depend on a number of simplifying assumptions that
do not always hold in practice. Therefore it is important to use numerical experimentation along with theoretical analysis to study the accuracy, efficiency, stability and
robustness of the schemes for various flows and this is one of the major concerns of
this thesis.
14
1.2
Literature Review
Although the vortex method has its roots back in the works of Helmholtz (1868)
and Lamb (1945), the modern form was proposed by Chorin with his first paper in
1973 [15]. The solution of the vorticity equation was achieved by convecting vortices
and simulating diffusion through a random walk scheme.
The random walks had
a Gaussian probability density function with variance proportional to the Reynolds
number. His results were in excellent agreement with experimental values for a range
of Reynolds numbers.
Regarding the choice of parameters it was concluded that
the results were rather insensitive to the time step, and that the number of vortices
created per time step on the cylinder surface had to increase with decreasing time
step. This had to do with the way he was treating vortices that penetrated the body.
Those vortices were simply eliminated. Chorin improved his original model with a
second paper presented in 1978 [16], when he included in the simulation the solution
of Prandtl's boundary layer equations. For that purpose he introduced the vortex
sheet method.
Christiansen [20] simulated the motion of vortices in an inviscid fluid, using a
technique having much in common with Chorin's ideas. For the computation of the
convective velocities he used the Cloud in Cell (CIC) method, often referred to as
the Vortex in Cell (VIC) method. In this method the vorticity is interpolated onto
an Eulerian grid and Poisson's equation is then solved by means of a so called 'fast
elliptic solver'. The cloud in cell method has the advantage of reducing the number
of computations from O(N 2 ) to O(mlog(m)), where N is the number of vortices and
m is the number of cells. For his numerical results he choose time step such that
the approximate number for one rotation is 128. He also choose the cut-off length of
the Rankine vortices such that a Courant-Friedrichs-Lewy equivalent condition was
satisfied.
Milanazzo and Saffman [42] applied Chorin's method to the viscous decay of a
15
vortex. The continuous distribution of vorticity was replaced by a finite number of
Rankine vortices that could move under their mutually induced velocities plus a random walk to simulate the effect of viscosity. They compared their results with analytic
solution and came to the conclusion that the quantitative error is significant unless
the number of vortices is large compared with a characteristic Reynolds number.
Leonard [39] in his review summarized the advantages of vortex methods over
traditional Eulerian schemes and the corresponding disadvantages as follows:
1. Because computational points are required only in the rotational parts of the
flow, vortex methods use a minimal description of the flow field and require a
relatively small number of storage locations. On the other hand, the number of
operations per time step is roughly proportional to the square of the number of
vortex elements in the discretization. This is leading to excessive computation
times as the number of elements is increased.
2. The Lagrangian treatment eliminates the need to explicitly treat convective
derivatives.
Because of this, small-scale features can often be convected ac-
curately with a relatively large time step and certain singular distributions in
vorticity may be treated exactly. The treatment of viscous effects however, can
be troublesome and the errors generated in representing smooth flows are not
well understood.
3. Vortex methods can capture fine-scale structures that develop in turbulent flows
by a local concentration of computational points. Due to limited resources, however remeshing will often be required with all the difficulties and approximations
associated with it.
Leonard stated that it is up to the practitioner to exploit the advantages while finding means of circumventing the disadvantages. He also made a number of proposals
aimed at minimizing the disadvantages mentioned above.
16
Teng [60] proposed a modification of the blob method aimed at improving its performance at boundary layer flow. He used elliptical blobs of uniform vorticity instead
of the circular ones. Such blobs can accommodate the streamwise-normal scaling disparity much like the vortex sheets do, while avoiding the introduction of the boundary
layer approximation into the algorithm. To motivate his work in the introduction he
mentions the slow convergence of the random vortex method near the boundary and
the observation that results are not always independent of numerical parameters. He
also discussed wall and outflow boundary conditions. Reflection was used to bounce
particles that have crossed the wall back into the flow. For the downstream outflow
boundary condition two downstream locations were chosen. After the first location
the vortices continued to move with the velocities they had when crossing that location. After the second location vortices are deleted. Numerical computations for a
semi-infinite flat plate showed that this method has improved convergence and accuracy for boundary-layer flows.
Beale and Majda [5] provided a rigorous mathematical proof of the fact that viscous splitting algorithms, which are the underlying design principle for the random
vortex method, converge to solutions of the Navier-Stokes equations in all of space, at
a rate that improves as the viscosity becomes smaller. They also proved consistency
statements and convergence to arbitrarily high order of accuracy [6] [8].
Cheer [13] applied Chorin's ideas to simulate the steady incident flow over a cylinder and over airfoils at various angles of attack.
Stansby & Dixon [59] also studied flow over a cylinder. They used the vortex sheet
algorithm to generate vorticity, the cloud in cell method to compute a particular solution to Poisson's equation and a panel method to compute a homogeneous solution
to Poisson's equation. For the cloud in cell method they used constant value of the
stream-function T
=
0 on the truncated grid boundary. One of their conclusions
regarding the method was that the accuracy depends more on the cell size than the
17
number of vortices per cell.
Roberts [48] used the circular vortex to investigate the accuracy of the random
vortex method. He concentrated on the interaction of the deterministic and random
components of the method. The results showed that the accuracy of the method depends heavily on the initial distribution and strength of the computational elements.
Ghoniem and Sherman [23] presented a detailed investigation of the simulation of
diffusion by the random walk method. Different types of boundary conditions of the
diffusion equation were considered, as well as the extensions to a system of coupled
diffusion equations, the reaction-diffusion equations and the convection-diffusion set
of equations. Attempts to use large number of particles to obtain solutions with high
accuracy were not carried out. Instead fluctuation errors that accompany economical
computations were studied to assess their effect on the overall quality of the solution.
In their closure they emphesized the need for addressing in more detail the aspects
of the solution which require a large computer budget.
Perlman [45] investigated the effect of the cutoff function and cutoff length on the
accuracy of the vortex method for inviscid flows without boundaries. The numerical
experiments indicated that for smooth flows high-order cutoffs improve the accuracy
of the approximation. The best value of the cutoff length was shown to be larger
than the initial distance between the vortices.
Hald [30] studied the convergence of a random vortex method with creation of
vorticity. He modeled free convection near a wall by solving a grid free random walk
method that involved creation of vorticity at the boundary. The pointwise error and
the least squares error of the computed solution tends to zero in probability as the
time step tends to zero and the number of particles increases.
Anderson [2] introduced a computationally efficient method for computing the
18
velocity field due to a distribution of vortex blobs. The method required fewer calculations than the straightforward vortex method velocity procedure. Anderson named
his new algorithm 'Method of Local Corrections'and we will discuss it in more detail
later in this thesis.
Goodman [24] proved a convergence theorem for a random vortex method for the
incompressible Navier-Stokes equations in two space dimensions. In a later paper
[25] Goodman proved consistency, stability and convergence of the point vortex approximation to the 2D incompressible Euler equations with smooth solutions. He
showed that the discretization error is second-order accurate. He also showed that
the method converges in the LP norm.
Greengard and Rokhlin [27] presented a fast algorithm for particle simulations.
The central strategy used was that of clustering particles at various spatial lengths
and computing interactions with other clusters which are sufficiently far away by
means of multipole expansions. Interactions among nearby particles were handled
directly.
Raviart [47] introduced an alternative scheme to account for the viscosity, by appropriately modifying the strength of the particles. This method named as Particle
Strength Exchange (PSE) has been shown to have good convergence properties but
its accuracy is heavily affected by the distortion of the computational mesh.
Sethian and Ghoniem [53] computed the solution of flow over a backwards-facing
step for Reynolds numbers 50, 125, 250, 375, 500, 5000 and studied the effect of the
choice of numerical parameters on the accuracy of the computed solution.
Puckett [46] studied Chorin's vortex sheet method and proved that in each of the
L1, L 2 ,
and L' norms the random walk and particle creation taken together pro-
vide a consistent approximation of the heat equation, subject to the no-slip boundary
19
condition. He also showed that the truncation error is entirely due to the failure to
satisfy the no-slip boundary condition exactly. Rates of convergence were established
in terms of the computational parameters. The numerical study revealed that errors grow when the sheet length tends to zero much faster than the maximum sheet
strength.
Baden and Puckett [4] presented a fast version of the random vortex method. The
basis of their method was Anderson's method of local corrections. They presented the
results of a numerical study of the flow in a closed box due to a vortex fixed at its center. The results demonstrated that the addition of the viscous portions of the random
vortex method to the method of local corrections does not add appreciably to the cost.
Fishelov [22] suggested a new way to discretize the viscous term of the NavierStokes equations, when they are approximated by a vortex method. The idea was
to approximate the vorticity by convolving it with a cutoff function. Then explicitly
differentiate the cutoff function to approximate the second order spatial derivatives
in the viscous term. Stability for the heat equation was proven and error estimates
for the heat and Navier-Stokes equations were given.
Buttke [10] presented an adaptive vortex method in which vortex blobs of multiple
scales are used to represent patches of constant vorticity. The number of vortex blobs
needed to approximate the patches was proportional to the length of the boundary
curve of the patch and inversely proportional to the width of the smallest blob used.
Points along the boundaries of the patches were advected according to the velocity
obtained from the approximating vortices.
Nordmark [43] presented two versions of re-zoning as well as two classes of cutoff
functions. One of infinite-order and one eighth-order. He also made comparison between the direct method of velocity evaluation and the Greengard-Rokhlin algorithm.
The numerical experiments indicated that for smooth flows, higher-order cut-offs com20
bined with re-zoning give high accuracy for long time integrations.
Lu and Ross [65] proposed a numerical algorithm for time-dependent two-dimensional
Navier-Stokes equations. The diffusing vortex method was extended to general twodimensional initial value problems and boundary value problems.
The algorithm
consisted of two time steps per simulation cycle. A Lagrangian convection step simulation for the first step was followed by a diffusion simulation through the use of
new vortex points at fixed Eulerian mesh points. Convergence and accuracy were
analyzed for an initial value problem and a boundary value problem.
Koumoutsakos [35] presented a Neumann type vorticity boundary condition for
the vorticity formulation of the Navier-Stokes equations. The vorticity creation process at the boundary, due to the no-slip condition, was expressed in terms of a vorticity
flux. The no-slip condition was not enforced by the generation of new vortices at the
boundary but by modifying the strength of vortices in the vicinity of the boundary.
He used the PSE scheme complimented with a particle redistribution algorithm that
allows accurate viscous simulations for extended times.
Shankar and Van Dommelen [54] proposed a method for simulating diffusion in
two-dimensional vortex methods for incompressible flows. The method was based
on exchanging circulation between vortices. Based on stability considerations, the
exchanged amounts should further be positive. Linear programming techniques were
used to find solution to this problem. Their method is similar to the ParticleStrength
Exchange Method that we discuss on chapter 3 of this thesis.
Rossi [49] analyzed the process of merging groups of many Gaussian basis functions into a single basis function in vortex simulations. For flows that tend to cause
basis functions to overlap or accumulate over time, a merging algorithm to remove
extraneous degrees of freedom can decrease the computational resources required for
the simulation. The basis function used in the paper was the Gaussian.
21
1.3
Objectives of Present Work
In the present work vortex method schemes are implemented, improved for efficiency,
tested for convergence and applied for the simulation of basic two-dimensional incompressible flows.
We evaluate the sensitivity of various vortex method schemes to the variation of input
paramters and explore the parameter space to understand how their choice affects the
accuracy, efficiency and convergence and provide giudlines on their choice.
We propose new methodologies with which we hope to alleviate some of the drawbacks of fast vortex methods. Namely the trade-off between the speed gains from the
efficient mathematical algorithm, and the inefficiencies that implementation issues
bring in when those methods are applied in practice.
Problems that accept analytic solution have been chosen to be used as test-beds for the
exploration of the sensitivity of the numerical schemes to the input and discretization
parameters, as well as to the investgation of their convergence and accuracy characteristics.
Improvements to the data-structures for more efficient implementation of the theory
involve the use new capabilities given by modern programming languages like Fortran
90/95 or C++. When vortex methods are used for the simulation of flows around
bodies the vorticity generated on the body boundary is shed into the flow increasing
continuously the number of vortices required to represent it. As a result the execution time, per time step also increases with time. Vorticity redistribution is used to
remove redundant vortices from areas of high clustering and to add in areas of high
stretching. This constant change of the number of vortices calls for an efficient way
to handle memory.
Some theoretical results are also supplied for completeness of the text.
22
Chapter 2
General Formulation of Vortex
Methods
2.1
The Equations of Motion
This thesis is concerned with two-dimensional flows. Although in the real world flows
develop in three space dimensions, we call and treat as two-dimensional, flows characterized by relatively small variations in the third space dimension. Two-dimensional
flows have been studied and lead to many useful results in the past. The motion of
an incompressible, viscous Newtonian fluid is customarily described by the continuity
and the momentum equations:
(2.1)
V+f
W-= +V
(2.2)
19V-
tV+
-4
VP
V
-
-
V -V = 0
where: V' is the velocity vector, P is the pressure, f is a field force, p is the density
of the fluid that is considered constant for homogeneous incompressible flow, V is the
kinematic viscosity of the fluid also considered constant. The above equations have to
be supplemented with appropriate initial and boundary conditions. In the presence
of rigid body in the flow the boundary condition on the surface of the body is:
V = Us
23
(2.3)
where U, is the velocity of the body surface with respect to some inertial coordinate
system.
We also have to prescribe boundary conditions at infinity if the flow is
external or without rigid boundary. Appropriate initial conditions also have to be
prescribed.
The vorticity of the fluid is defined as:
W = ViX
(2.4)
For two dimensional flow, the vorticity vector has only one non-zero component the
one perpendicular to the plane of the flow and thus it is a scalar field w. Applying
the Curl operator on 2.2 we get the vorticity equation
at
t+7- VW = VW + V X f
(2.5)
Equation 2.5 does not involve the pressure variable. This is so because for a homogeneous incompressible fluid : V x VP = 0. This decoupling of the velocity and
pressure variables is one of the main benefits of this formulation.
Note also that in most cases the body force is conservative, (like for example gravitational force), so that:
Vx
that it lacks a term w' - V
f
= 0 Another important observation on equation 2.5 is
which is present in three-dimensional flows and accounts
for vortex stretching and tilting.
The velocity field can be decomposed in a rotational and an irrotational component:
V
'W + VO(2.6)
The rotational component incorporating the incompressibility condition can be written in terms of the stream function:
VW = V x '
24
(2.7)
In two dimensions the stream function vector reduces to a scalar T.
The irrotational component can be written in terms of a velocity potential:
VO =(2.8)
Now we can write the vorticity in terms of the stream function:
U;= V x (V x XF+Vob) = -V
2
T
(2.9)
This is just a Poisson equation for the stream function with vorticity acting as
the forcing term.
2.2
Vortex Methods
The vorticity field is discretized into patches of vorticity that are advected with the
local induced velocities. An assumption made is that the patches of vorticity are
non-deformable. From there on we will refer to them as vortex particles or vortex
blobs. The left hand side of 2.5 equation can be written in the form of a material
derivative:
D
Dt
=
v2w
(2.10)
The vortex particles' advection is described by:
'- = V(Xp, t)
Dt
(2.11)
By integration of equation 2.11 we can find the trajectories of the vortex particles.
The right hand side of the equation is also changing with time because it depends on
the vortex particles whose positions change with time. We can calculate it at any time
using the equations 2.6. The potential part of the velocity vo usually is calculated so
as to satisfy no flux boundary conditions in the presence of a body in the flow. The
rotational part of the velocity v) can be found from 2.7 if T is known. The stream
25
function can be taken as the solution of 2.9 by convolution of the Green's function
for the Laplacian operator with the vorticity w:
JflIn -
TVX) = --
w(x) dX *
(2.12)
We obtain for the velocity
...
..
1 (s-1()
')XW(
) -.
-.
=
... 2
27r ff
2.2.1
X -
dX + V(
(2.13)
'X
Space Discretization
The vorticity field in its discrete form can be expressed:
N
w(0, t)
=
Z Fir(
- X
,t)
(2.14)
i=1
where
N is the number of particles in the flow,
Fj is the circulation of the
jth
particle centered at X'i
The requirement for the core function rq is to have normalized distribution:
J r(s)d = 1
(2.15)
This ensures that:
N
=
ffw d7
(2.16)
i=1
The particles are convected with the local induced velocities and maintain their shape
and strength. In some schemes as we will see in a following chapter the strength
changes in order to simulate diffusion. We can now write equation 2.11 in discrete
26
form:
d zi
di
I N ( i1= N
jjX 6z ]j 71
x-(2.17)
2|i
i
~
j
The choice of core function q(s) plays important role in the accuracy of the vortex
methods. We assume the differences in the distributions between the vortices depend
only on a parameter o, i.e. r1 is expresses as:
Z) =
-
Xif(
)
o-Ui
(2.18)
The simplest model is to use Dirac function: rq(Y) = 6(i-X) Although it has been
proven to theoretically converge to the correct solution, in numerical implementation
it gives rise to singularities and is not preferred.
For there on we will denote r =
-i
The Rankine vortex is defined to have cutoff function:
r
r,(-) =
a
1r
79
2 H(1
-
(2.19)
-)
or
where H is the step function. The Gaussian distribution can also be employed. It has
the benefit that it resembles the process of the diffusion of a point vortex. Then we
have:
r
r2
(
=ra2 exp 7
(2.20)
We can obtain higher order kernels by combining Gaussian kernels of different scalings.
In the process of constructing higher order kernels we have to satisfy 2.15 enriched
by the following set of conditions:
1. r1 is smooth and rapidly decreasing
2.
JJ
0 , 1 <|
7(Y) d=
where m is integer
27
#
j< m - 1
(2.21)
Beale and Majda [6], [8] proved that the satisfaction of those three conditions leads
to rapid convergence of the constructed high order method. Equation 2.21 is called
the moment condition, and it says that certain number of moments vanish. To reach
the above set of conditions the assumption was that the the function 'q is twice differentiable and radially symmetric. With
ij
satisfying the above conditions vortex
methods converge provided a proper relation between a and the inner spacing of the
particles (h) introduced at time zero. If a = hq (q any fixed number with 0 < q < 1),
the error is of the order of a' = h"q , i.e. the method is essentially O1 h order.
As an example we will construct a fourth order kernel from two Gaussians with different scalings: r( 4)(r) = cirj(2 )(r) + c 2 Y (2)(1) where a is arbitrary except that a
: 1.
For the new kernel to satisfy 2.15 we must have:
ci
+a2
. c2
= 1
This leaves us with one constraint to impose conditions. Because of symmetry, condition 2.21 will hold with m=4 provided: f r (4 )(r)r2 - r dr = 0
This holds if : c1 + a -c
=
0 solving for ci and c 2 we can express q(4) in terms of the
parameter a.
A cutoff kernel of infinite order proposed by Hald is the following:
,r)
-
2.2.2
45
4
2(r)3
4r
(16 J3(-
2rr
10 J 3 (-)
+ J3(-))
(2.22)
Time Discretization
Equation 2.5 is solved by the fractional step method. The idea of the fractional step
method is to simulate the diffusion and convection sequentially rather than simultaneously. The error tends to zero with the time step approaching to zero. In one
fractional step we solve the diffusion equation:
=
vV2w
28
(2.23)
Then in another fractional step we solve the convection equation:
at
(2.24)
+ Vw = 0
In the presence of a rigid boundary the splitting scheme has to accommodate the
enforcement of the boundary conditions. Later in this Thesis we will elaborate into
the solution of each of those fractional steps. In most cases throughout this thesis
the second order Runge-Kutta scheme was used to advance the equations in time:
j(n+l)
-(n)
+ At u(t(n) +
'
e
#)
+
t(2.25)
m2
The method is second order accurate, i.e its error is O(At 3 ).
29
Chapter 3
The Diffusion Equation
In this chapter we will present some of the most common methods used for the solution
of the diffusion equation 2.23 in the context of vortex methods.
As we saw on the previous chapter, in every time step we have to solve the diffusion
equation for the vorticity :
3.1
3.1.1
= vVW
2
The Method of Random Walks
One-Dimensional Random Walk
Suppose that a large number of particles are dispatched simultaneously from the
origin of a Cartesian coordinate system, with each particle instructed to take a step
along the x-axis drawn at random from a Gaussian distribution with zero mean and
variance a 2 . After the first step, the probability of finding a particle in the small
range dx around x is given by:
X1
Pi(x, a) dx = e2-
dx
(3.1)
Let each particle then be instructed to take a second step, drawn at random from the
same distribution. The probability of finding a particle within dx around x is given
30
by the integral:
P 2 (x, r)
dx = dx
2 2a
2
27ro-
-OO
d
(3.2)
i.e., by the sum of the probabilities that the particle reaches x in two steps, having
reached any x = 7 in one step. The integral is easily evaluated and the result is:
dx
2
P2(x, a) dx = e- xa
(3.3)
By induction, after k such steps,
Pk(x, r) = e
dx
X2
2k02
(3.4)
Equation 3.4 demonstrates the fact that the sum of Gaussian random variables with
zero mean is another Gaussian variable with zero mean, and variance equal to the
sum of the variances of component variables (Central Limit Theorem). If
o2
= 2 v At
(3.5)
where At is the time step and t = k At, i.e.
2 ka 2 = 4vt
(3.6)
then,
P(x, t)
exp-t
=
(3.7)
This is the singular solution kernel of the diffusion equation. It satisfies:
I:P(x, t) dx
and P(x, 0) for x
$
=
1
(3.8)
0, so that P(x, 0) = 6(x), where 6 is the Dirac delta function.
31
3.1.2
Diffusion in one Dimension Semi-Infinite Domain by
the Method of Gradient Random Walk
Theoretical Analysis
Let's consider a semi infinite domain Q = {x E R : x > 0}. We want to solve the
equation:
at
= Vax2
(3.9)
subject to the following boundary conditions:
w(0, t) = wo and w(oc, t) = 0. We will use and illustrate the method of Gradient
Random Walks for the solution of this problem. This method is the basis for the
vortex sheet method used in two dimensional domains.
Here, particles transport
elements of gradients while their timely displacement is constructed to approximate,
in a statistical sense, the exact distribution of that gradient. The solution in terms of
the distribution of concentration is obtained by repeated integration over the particles'
position and their elements. This process replaces ensemble averaging in conventional
statistical simulations. From there on we will denote by H the Heavyside function
defined as:
H(x)
1 if x > 0
=
0
(3.10)
if x < 0
From w(x, t) we construct the variable q such that:
w(x, t) =
q dr
(3.11)
The governing equation and initial conditions are derived from 3.9.
a2 q
t = Xv
aq
q(x,0) = 6(x)
(3.12)
(3.13)
The distribution of q(x,t) will be simulated by a number of particles N, each carrying
a delta jump with weight proportional to a fraction 1/N of initial total sum of q(x, 0).
32
Thus, the discrete representation of q(x,t) is a sum of Dirac delta functions located
at the positions xj and weighed by 6wj:
N
q(x, t) = E Swy6(xj - x)
(3.14)
j=1
where {xj} is a set of Gaussian random numbers with zero mean and standard deviation v'2-vt. The approximation of w(x, t) is obtained from 3.11:
N
w(x, t)
=
1 6wjH(xj - x)
(3.15)
j=1
The solution can be constructed as a time-evolving simulation. The quantity that is
initially concentrated in the plane x=O is a jump in w. This quantity is distributed
on N particles that are originally at x = 0. At every time step, each particle is moved
by a random displacement ( drawn from a Gaussian distribution with zero mean and
variance 2vAt. The new location of the
particle is:
jth
xj (t + At) = xj (t) + (j
(3.16)
Every time a particle passes a point x moving toward x = oc is causes an increase in
the w(x) by an amount of '.
In the event that xj = x then the particle contributes
half its strength. This is like extending the Heavyside function to be:
H(x)
1
x> 0
0.5
x=0
0
X < 0
(3.17)
So far we have not discussed the effect of the boundary. For the problem to be well
posed, along with the diffusion equation we need to specify boundary conditions.
The concentration of the diffusing field, its flux or a linear combination of the two
has to be specified on the boundaries. In the first case we are talking about Dirichlet
boundary conditions, in the second we have Neumann and in the last case we have
33
- = VV
at
T(oo,t)= 0
2
I-
T(x.O) = H(-x)
Figure 3-1: One Dimensional Diffusion of a Passive Scalar on a Semi Infinite Rod.
Robin boundary conditions.
If Dirichlet boundary conditions are specified on the boundary, particles are reflected
back unchanged. This process is known as symmetric reflection. If Neumann boundary conditions are specified on the boundary, particles are reflected with change in
their signs. This is known as antisymmetric reflection. If a combination of the two is
defined on the boundary (Robin conditions), then extra gradient elements should be
generated and carried by new particles to satisfy the boundary condition. This is the
case with the no-slip condition in viscous flow over a solid boundary. The numerical
error is 0(v)) or 0(0v)), depending on the system. Thus the algorithm is capable
of resolving thin boundary layers that result from small values of relative diffusivity.
On the other hand this error is anti-diffusive, rendering the method most suitable for
turbulent flow calculations.
Numerical Results
We will present results of the method described above for the diffusion of a passive
scalar on a semi-infinite rod with Dirichlet boundary conditions (figure 3-1).
The
problem has know analytic solution the complementary errorfunction define as:
erfc(x) = 1
j
-
34
e'
2
dt
(3.18)
Table 3.1: Summary of Run Parameters for Semi-Infinite Rod with Dirichlet Boundary conditions. At denotes the time step, Np the number of particles, and v the
diffusivity.
1/
dt3mn2 10-3
dt3m2rn2 10-3
dt3m3n2 10-3
dt3m4n2 10-3
dt3m5n2 10-3
101
102
102
10-2
10-2
104
105
10-2
dt4mln2 10:dt4m2n2 10-4
1-:2
dt4m3n2
101
102
i0 3
IF2
10-2
104
10-2
105
10 -2
At
Nj
v
dtlmu2
dtlm2n2
dtlm3n2
dt1m4n2
dtlm5n2
10-1
101
102
0
104
10-2
10-2
10
10-2
105
10 -2
101
10-2
102
dt2mln2
dt2m2n2
10'
10-1
1010-1
10-2
10-2
dt2m3n2
10-2
i07
dt2m4n2 10-2
dt2m5n2 10-2
4
10-2
105
102
10
At
Name
N,
Name
Name
104
dt4m4n2 10dt4m5n2 10-4
103
dt5m 1n2 0-5
dt5m2n2 10-5
dt5m3n2 10-5
dt5m4n2 10--5
dt5m5n2 10-5
10-2
1J- 2
10-2
At
N,
v
101
10-2
102
102
103
102
10
105
10-2
____
The parameters of the set of runs are summarized in Table 3.1.2. The diffusivity
coefficient for the runs was v = 10-2. In the context of vortex methods this would be
the inverse of the Reynolds number.
Figures 3-2 and 3-3 show passive scalar profiles comparisons for t* = 5. The error
plotted is actually relative error defined as:
f0 (Tex(x) - Tnmr(x)) dx
(3.19)
f0 Tex(x) dx
To go one step further this error is the ensemble averages of the error defined as
in 3.19 for several sampled time steps.
The slope of a best fit line passed through the log-log diagrams can give us the rates
of convergence. The slopes are summarized in table 3.2. From this table we see that
the convergence rate with respect to the number of particles is about -0.50 value
proved theoretically for free diffusion. We have numerically proven that the method
of particle reflection to simulate boundary conditions maintains the same rate of convergence, i.e 0 (N
).
What may look disappointing is the convergence rate with respect to the time res-
35
10-2
0.8
0.6
H
0.6
0.4
0.4
0.2.
0.2
0
0
2
1
-E xact
--- p=10
N
N p=100
N p=1000
N p=10000
p=100000
1
...N
0
0
-
H
,-
3
)
x/(2(v t)"
t =5.0, A t 10-3
0.8
H-
0.6-
0.4
0.4
0.2 -.
0.2.
0
2
1
-
0.6
0
Exact
Np=10
Np=100
Np=1 000
Np=10000
Np=100000
0.8
u0
-
H
1
-
-
3
2
t =5.0, A t= 10-4
Exact
Np=10
Np=100
Np=1000
Np=10000
Np=100000
-
2
1
x/(2(v t)1/2
1
-
)
-
Exact
Np=10
Np=100
Np=1000
Np=1 0000
Np=100000
0.8
- - -
t =5.0 , At==10-2
t=5.0 ,At= 10~1
1
--
3
2
1
3
x/(2(v t)/ 2
)
x/(2(v t)1/2)
t =5.0, At= 10-5
t=5.0
2
E xact
Np=10
Np=100
Np=1000
Np=10000
Np=100000
1
0.8
H
Ni =50
-
1
N =500
Nh =5000
Nh =50000
tN=500000
-
0
-
'g-1
0.6
-2
0)
0.4
-3
4.
0.2
-52
1
x/(2(v t)/
-60
3
2
4
6
8
10
log(Np)
2
)
u0
Figure 3-2: First Five plots show Evolution of diffusion each plot for different time
step. The sixth plot shows in logarithmic axes the error as a function of particle
number, parametricaly for various At.
36
-
-
-
, w
-
- -
t=5.
10,
0.8
I-
--
t =5.0 , NP=102210
Np=
Exact
Nit=50
Nit=500
Nit=5000
Nit-50000
Nit=500000
1
-0.8
Nit=500000
I-
0.6
0.4
0.4
0.2
0.2
-2
1
Exact
Nit=50
Nit=500
Nit=5000
Nit=50000
1
0.6
O'
0
0
3
1
0
12
-
I-
-
0.8
--
t =5.0, Np: 104
Exact
Nit=50
Nit=500
Nit=5000
Nit=50000
Nit=500000
1
-
0.8
0.6
F-
-0.4
0.2
0.2
1
2
Exact
Nit=50
Nit=500
Nit=5000
Nit=50000
Nit=500000
0.6
0.4
0
0
3
)
t =5.0, Np= 1 03
1
2
x/(2(v t)1 2
/
)
x/(2(v t)
- I a --
-
-
IMM
3
1
0
x/(2(v t)/)
2
3
x/(2(v t)1/2
t =5.0, Np= 105
t=5.0
3
-
Exact
1
-
Nit=50
Nit=500
Nit=5000
Nit=50000
Nit=500000
0.8
-
1
-
0
w
0 -1
0.6
.
I-
N
N
N
N
N
2
0.4
=10
=100
=1000
=10000
=100000
-2
0.2
-3
n
-4'
0
1
2
3
0
2
4
6
8
10
log(Nit)
x/(2(v t)1/2)
Figure 3-3: First Five plots shows Evolution of diffusion each plot for different number
of particles. The sixth plot shows in logarithmic axes the error as a function of time
step, parametricly for various numbers of particles.
37
Table 3.2: Slopes of best fit first order polynomials indicating rates of convergence.
In the left column is the constant quantity and on the right column the slope.
N, [Slope
At
Slope 1
10-1 -0.4969
101 0.0015
10-2 -0.4331
102 0.0085
10-3 -0.4548
10
0.0139
olution.
10-4
-0.5016
104
-0.0090
10-5
-0.5224
1T0
-0.0496
It appears that the slope is very small. In fact in some cases for small
number of particles the slope is even slightly positive. Positive slope could indicate
divergence.
As the number of particles increases the slope is getting increasingly
negative. The positiveness of the values should not be taken too strictly as those
experiments involve random processes and convergence should be looked at probabilistically too. This means that taking a larger number of experiments to form the
ensemble averages could yield more accurate results. In our case the ensemble average was formed by 10 samples. What is definitely to hold is that the slope of the
relative error with respect to time stepping is nearly zero. One possible explanation
for this would be that the first time step of At = 0.1 was already sufficient for this
problem and from there on there are other factors playing a bigger role in the error.
One such factor would be integrating the gradients particles to get the actual value
of the passive scalar at every x position. Another could be the random character
of the experiments. The integration involved in the definition of the error was also
suspected but after defining the error in the least squares sense yielded similar results.
38
3.1.3
Diffusion of a Point Vortex in Two-Dimensional Flow
Theoretical Analysis
The motion of a diffusing vortex of initial strength F centered on the origin of the
(r, 0) plane is described by the diffusion equation expressed in polar coordinates:
at
= ,(
+
&r2
r ar
)
(3.20)
from which we may obtain the well known solution for the subsequent vorticity distribution in space and time:
F
w(r,t) =
(3.21)
-
Vorticity strength is a function of radius r and time t. We will use this case for which
we have analytical solution of the vorticity equation to demonstrate the method of
random walks. We replace the vortex F by N elements each of strength
-y
located at
the origin at time t=0 but free to move independently. Some time later the diffused
vorticity may be represented by scattering the elements over the plane. The method of
random walks achieves this in the limit as N -+ oo. The desired radial distribution of
vorticity at time t is given by 3.20. For a vortex of unit strength split into N elements,
let us assume that n vortex elements scattered into the small area AA
-
r AO Ar
after time t. The probability that an element will land into the elementary area when
scattered is
P
n
N
1
2
.47r v
e
r AO Ar
(3.22)
An appropriate strategy then is to displace each element i in the radial and angular
directions by amounts ri and 9i over the time interval 0 to t, such that the radial
probability distribution given by 3.22 is satisfied for all AA elements which make up
a given domain.
From the symmetry of 3.20 it is evident that scattering in the 0 direction should be
done with equal probability. Thus we define Oi values independently of ri values by
39
the equation:
Oi = 27rQj
(3.23)
where ( is a random number within the range 0 < (i < 1.0.
The radial scattering of vortex elements may be decided by first integrating 3.21:
/27r
P'4= fo
1
47rVt
1
,2
e
vt
rAr d =- p' =
2vt
,2
v-e
t
r 2r
I
(3.24)
So p' is the probability that a given element will lie between r and r + Ar. The
probability P that an element will lie within a circle of radius r can be found by
integration of p' from 0 to r,2
P =1-e
4vt
(3.25)
Note that the above expression is the Gaussian distribution. The value of P must be
equally likely to lie anywhere in the range [0, 1] and may be determined by selecting a
random number P within this range. Thus for the ith vortex equation 3.23 is written
in discrete form:
Pi =-I - e- 4(3.26)
Solving the above for ri we obtain the radial displacement:
ri =
4vt ln( l)
(3.27)
The scatter of the N elements comprising the unit vortex is then determined by
selecting N random numbers in the range 0-1 for both P and (j. The random walks
(ri, O) are obtained then using 3.23 and 3.26. For an unbounded fluid the linear and
angular impulses are invariant. Those impulses are given respectively by the following
relations:
N
IX =-
Fym,
(3.28)
r ixi,
(3.29)
i=1
N
IV =
40
i=1
A=
1
2
N
rFi (x +yj)2
(3.30)
The above impulses remain invariant also in bounded fluid under the condition that
the net force and couple applied over the boundary walls is zero. The total circulation
ZN Fi is also invariant.
The square of the radius of gyration A
=
-24
grows like 4vt.
Numerical Results
Figure 3-4 shows several stages of the diffusion of a vortex. The radius of gyration
and the linear impulses mentioned before can be used as norms of the error in our
numerical calculations. Knowing what their analytic values should be, and comparing
those values with the ones obtained from the numerical solution of the problem we
can estimate the accuracy of the numerical scheme.
Figures 3-5 and 3-6 show
the circulation as a function of the radial distance from the center. Convergence is
evident as the number of elements increases. The results appear to be less sensitive to
the time step decrease. Similar conclusion was drawn in the case of the semi-infinite
rod.
In view of this fact we tried to associate the time step dependence with the radius
of the vortex core. The results are shown in figure 3-8. For the runs in this plot a
constant number of 100 particles was used throughout and both diffusion and convection were activated. The first plot shows contours of circulation error, the second
contours of error in linear impulses, and the third contours of error in the radius of
gyration, as they were defined earlier in this chapter. What we can note from this
plot is that the error is not monotonically varying along horizontal or perpendicular
cuts.
For example we can see that for very small time step and very small vortex core there
is an increase in the error in circulation error. This is probably due to the loss of
overlap of the vortex cores that is mathematically required for consistency. Because
the number of vortices was kept constant as the vortex was diffusing in time the
number of particles used was insufficient to resolve the flow.
41
xli
ID
B
t-0.00
j
10
t -0.24
i
.6
X 1U,
10
8
8
4-
2 ---- ..----------.. .............2 - . . . .
.
-
2
0
0.C I
0
-0.01
-0.01
42
4
-0.11
0
r1O
0.CI
A
0
x 1"
0.01
t- 0.4
to
x1c t-0.4
- --
6
S
6 00
-0.01
4
4
2
2
-0.01
I-0.50
0
for,
1
.-- .- .-
--
-
0.01
0
-0.01
t0.04
0
0
X1C
C
1-0.72
-- -. . - -- -. ---
3
4
4
4
0
-0.01
a ..............................
0.01
1F
10
4
x
"'0-8
4
2
-0.1)1
0
O.01
4
4
2
2
-0.01
0
0.01
-0.01
Figure 3-4: Diffusing Point Vortex for v = 10-6.
42
0
(
S.01 --- -- --0 -a0
A t =0.01
A t =0.1
1.5 r
1.5 r
-
_
-
-N
Analytic
N =10
N =100
N =1000
P= 10000
p
-
-
Analytic
N =10
N =100
N =1000
N =10000
P
1
1
C
0
0
0z
03
0.5
1
0
0.005
0.01
Radial Distance
0.015
0
A t =0.001
0.005
0.01
Radial Distance
0.015
A t =0.0001
1.5
1.5 r
-
Analytic
N =10
N =100
N =1000
N p =10000
-
_
-N
1
Analytic
N =10
- p
N =100
N =1000
P= 10000
p
1
C
0
C:
0
03
2
0
0.51
0'
C
0.5
'
'I'
0.01
0.005
Radial Distance
0.015
0'
C
0.01
0.005
Radial Distance
0.015
Figure 3-5: Circulation profiles at t=1.0. V = 10-6 for various time steps. Parametric
is the Number of particles
43
N =100
N =10
1.5
1.5 r
P
-
Analytic
-
At=0.1
-
A t =0.01
A t =0.001
-
-
-
-
A t =0.0001
1
Analytic
At =0.1
A t =0.01
A t =0.001
A t =0.0001
1
C
0
C
0
0.51
01
0
0.5
0.005
0.01
Radial Distance
u0
0.015
N =1000
0.005
0.01
Radial Distance
0.015
N =10000
1.5 r
1.5 r
-
Analytic
-
At=0.1
-
At =0.01
A t =0.001
A t =0.0001
-
-
-
-
1
Analytic
A t =0.1
A t =0.01
A t =0.001
At =0.0001
1
C
0
C
0
-0
0a
0a
M
0.51
0
0
0.51
0.005
0.01
Radial Distance
0
0.015
Figure 3-6: Circulation profiles at t=1.0.
Parametric is the time step At.
V =
44
0
0.005
0.01
Radial Distance
0.015
10-6 for various Number of Particles.
1
2
0
-
A t =0.1
-
At =0.01
At =0.001
0
-
M
-N
1
-
A t =0.0001
-N
0
N =10
P=1 00
p
N =1000
P=1 0000
p
o -1
o -2
0
0
0
-3
-4
0
4
2
6
-4
-3
log 10 (NP)
-2
-1
0
1
log o(At)
0
-
-1
-
A t =0.1
At =0.01
At =0.001
A t =0.0001
0
-
_1
-
N =10
N =100
N =1000
N =10000
.5-
E
w
-
0
-2
-3
0 -3
-4-4
-5
-5
-6 L
0
4
2
6
-4
-3
-2
-1
0
1
log 0 (At)
loglO(NP)
2
-
At =0.1
At =0.01
A t =0.001
-
At =0.0001
-
0C
0
-
C
--
-2-10
N =10
N =100
N =1000
p
N, =10000
0-2
w
0
0
0-3
-3
cm -2
-4
-3
-
0
-4
-
-5
0
2
4
6
logI(NP)
-4
-3
-2
-1
log, 0(A t)
0
1
Figure 3-7: Logarithmic Plots of the relative error for circulation, impulse and radius
of gyration.
45
0.04
0.035
-2
-2.5
0.03
-3
-3.5
.0.025
---4
-4.5
0.02
-5
-5.5
0.015
1
-3.2
I
- m-3
-2.8
-
---
-2.6
;I
0.01
-2.2
-2.4
-2
-1.8
-1.6
-1.4
log(a)
0.024
-1.5
-2
0.022
-2.5
-3
0.02
-3.5
0.018
-4.5
-5
-3.2
-3
-2.8
-2.6
-2.4
-2.2
-2
-1.8
-1.6
-1.4
log(a)
0.025
-1.5
-2
0.02
-2.5
-3
0.015
S -3.5
-
-4
-4.5
0.01
-5
-5.5
-3.2
-3
-2.8
0.005
-2.6
-2.4
-2.2
-2
-1.8
-1.6
-1.4
log(a)
Figure 3-8: Systematic study of error in circulation, linear impulse, and radius of
gyration in the L,, for [At x -] parameter space. A constant number of Np=100
particles was used.
46
A more thorough look in this plot is leading us to believe that there may be a stability
requirement that relates the core size and the time step for the diffusion process. Unlike the Eulerian methods that are likely to blow up in case of instability Lagrangian
methods with explicit integrators are only going to give inaccurate results. The conclusion here is that there must be a Diffusion Number equivalent and a CFL number
equivalent requirements for stability. The first should provide a relation between the
vortex core and the time step in term of the viscosity and the second in terms of the
circulation of the vortex and the number of vortex blobs used to resolve it.
Although mathematical proof is not provided to the author's knowledge we would expect a condition like "AE < C to hold. The C constant is like to be equal to one but a
rigorous mathematical analysis is probably the only way to know for sure. The CFL
FZt
27rNp
< Or 2 .
In the above expression we
-
equivalent condition leads to the requirement
denoted by F the total circulation and by Np the number of vortex blobs resolving
the rotating and diffusing vortex. Apparently there can be a situation where the
CFL condition is satisfies but the diffusion number equivalent condition is not. The
diffusion number requirement for the random vortex method is not documented in
any other work to the author's knowledge probably because the random walk itself
is independent of the core size. It relates however in this case that the total number
of particles was kept constant to the requirement of continuous overlap of the vortex
blobs.
47
3.1.4
Random Number Generation
As we saw earlier to simulate the random walk we need a two-dimensional Gaussianly
distributed sequence of points with zero mean and variance v = 2vAt. Note that this
is the case when we want to calculate the two independent walks in each of the
two Cartesian directions. In the previous section we used alternatively one random
variable of uniform distribution for the angle and one Gaussian with variance ? =
4v/At for the radial. Obviously the two alternatives are equivalent. The set of two
random walks in each direction can be obtained from a uniformly distributed sequence
of points
= Vcos(27r 1)V/-2logp 2
((P1, (P2)
E [0, 11 x [0, 1] by using the formula:
(3.31)
v
2
=
v sin(27r
1)
/-2 log p 2
We used Fortran 90 which provides intrinsic subroutine RANDOMNUMBER for
the generation of (O1,
y2).
48
3.2
The Method of Core Expansion
The core expansion methods consists of using spreading Gaussian blobs around the
particles while keeping their circulation constant. It is based on the observation that
Gaussians are explicit solutions to the heat equations and the linearity of the diffusion
equation. As we saw in the previous sections the vorticity field may be represented
by a superposition of elementary Gaussian vorticity fields. When each of these fields
satisfy the diffusion equation so does the total vorticity field. The diffusion of each
vortex particle in the method of core expansion is achieved by a linear time growth
of or:
du
= 4v
dt
(3.32)
This guarantees an accurate and inexpensive solution of the diffusion equation assuming a Lamb vortex.
However the method cannot be used if consistent approximations to the NavierStokes equations are sought, and the method of core expansion should be seen only
as a diffusion model valid only at the limit of vanishing viscosity. The reason for this
inconsistency is that, for a fixed viscosity value, the size of the blobs can no longer
be considered a small smoothing parameter. Because of the strain in the flow, the
spreading blobs cease to yield a consistent approximation of the flow in the advection
fractional step. This was clearly demonstrated by Greengard [26].
The consistency issue can be solved by redistribution of the vorticity via its discrete
convolution with the heat kernel together with time splitting of the Navier-Stokes
equations to Euler's and to the heat equations. The resulting scheme converges to
the Navier-Stokes equations but the introduction of a grid for the vorticity redistribution adds some numerical diffusion.
49
3.3
The Particle Strength Exchange
In this method [41] the diffusion equation is solved by modifying the strength of the
vortex particles. If the particles occupy regular positions on a grid this method is
equivalent to a second order finite-difference approximation. Some minimum particle
overlap is required for the accurate simulation of the diffusion with the PSE (Particle
Strength Exchange) method. Usually the scheme has to be complemented with a
particle redistribution algorithm because of the high distortion of the vorticity field
occurring in many interesting flows.
3.3.1
Infinite Domain
In the method of Particle Strength Exchange the Laplace Operator A is approximated
with an integral operator A 7 . Then the quadrature rule for the calculation of the
integral uses the locations of the particles as quadrature points. Define:
AZW
where r, =
(j) is the
1
-(rh,
=
* w - w)
(3.33)
smoothing function chosen in accordance to the require-
ments 2.15 and 2.21.
Then it can be shown that:
A'W = AW + O (-')
(3.34)
Then the diffusion equation can be written in integro-differential form:
Ow Ot
f
2
o]R2
X' (Wkd
)
-
.)
r(
- X') dx'
(3.35)
W(')
The integral operator is discretized using the locations of the vortex particles as
quadrature points. The discretization introduces an additional error of O(hk/crk+1)
where h is a representative inter-particle spacing and k depends on the function tj.
50
Substituting w by its discrete form 2.14 in 3.35 we get:
F
dt
v
N
n-I -
a
I
71a (li -f)
(3.36)
?=1
where, d is the dimension number, i.e. d=2 in two dimensions.
Theoretical analysis by Degond and Mas-Gallic (1988) has shown the method to be
stable provided that there exists positive constant Co such that
2
< CO
Pepin (1990) proved that when one uses a Gaussian smoothing function and an explicit Euler integration scheme in time with time step:
6t = 0,
the results of the computations are independent of the number of particles used,
provided sufficient overlap between them. This is essentially a statement of existence
of an optimum step for the PSE method. When this step is used then the only
source of error is that of the quadrature rule that is known to vanish provided the
particles overlap. Koumoutsakos showed [37] that for the same number of particles
and the same time step At the results of the PSE method are more than two orders of
magnitude superior to those obtained using the random walk. Another very important
aspect is that the method does not require viscous splitting algorithm for the solution
of the convection-diffusion equation. The integration of equations 2.17 and 3.35 can be
done simultaneously to account for convection and diffusion by modifying the particle
location and strength respectively. This observation helps reduce the computational
cost of such methods as the smoothing kernel
at the particle locations.
51
j.,(!)
needs to be calculated only once
Chapter 4
The Convection Equations
In this Chapter we will elaborate in the solution of the inviscid convection equations
for the vorticity. We will present some of the fast vortex methods. We will present
result for the Vortex In Cell (VIC) method, or Cloud in Cell (CIC) as it is commonly
called in the plasma physics literature. We will also describe our new proposed datastructure for use in the Method of Fast Multipoles, and give results of its use. The
Method of Local Corrections is also covered for completeness of the text but without
results as this method was not implemented.
As we saw in previous chapter in the two-dimensional vortex method the convection
of the vorticity field in Lagrangian representation is written:
dx~-p
- =dx' I
27
dt
( - XI) x W(XI)| ' - 1 |2
(4.1)
The above equation is written in discrete form as:
(j?
) Xi
z
(4.2)
dzi
-
dt
-
1
,
2r
N
E
-
|x
2(42
Looking at this equation we see that for N vortices in the flow an 0 (N 2 ) operations
per time step is required.
52
4.1
4.1.1
Vortex In Cell Method
Theory of Vortex in Cell Method
The key to the execution of this grid dependent hybrid scheme is to bypass the BiotSavart law and to use sequentially the Lagrangian frame to track the vortices, and the
Eulerian frame to calculate the velocity field through the use of Poisson's equation.
The procedure can be summarized in the following steps:
1. Superpose a grid over the computational domain.
2. Allocate the vorticity from the vortex particles to the grid points.
3. Solve the Poisson equation for the stream function T:
4. Find the velocity components at the grid points from 2.7:
U = a
V
Dx
Ox-
(4.3)
5. Interpolate the velocity from the grid points to the actual vortices.
The allocation of a vortex on the grid points can be done simply by using the area
weighting scheme:
Wi =
lEn
A
A
i =-1, ... , 4
,
(4.4)
Using superposition we repeat this process for every vortex particle.
The Poisson equation is written in discrete form as:
1
h2 %12
1
- 2'i',j + Jiij) + p(Iij+i - 2j, + I'i,j+) =
(4.5)
h2
Frj is the accumulated vorticity following redistribution of all discrete vortices in cell
sharing node (ij). Equations 4.5 written for all (i, j) values form a banded matrix
53
for which standard solution procedures are then available.
Once the stream function has been determined velocities at the mesh points can
be calculated from the expressions:
-i,
Vi,= -
-('Pi+1,j - Ii-1,j)
(4.6)
(4.7)
The vortex convection velocities are interpolated through the previous area weighted
procedure.
4
Un
=
E U
p=1
AP
p
=
(4.8)
A
(4.9)
P=1
Area weighting can be shown to be identical to bilinear interpolation.
The basic advantages of the VIC method are as follows:
It reduces the operation count from 0 (N 2 ) that it is for the Biot-Savart law. For
incompressible flows, Poisson solvers require order M log 2 M operations, where M is
the number of grid points. Thus, the VIC method requires less computing time compared with the direct summation method and enables one to track a larger number
of vortices. The velocity field calculation is effectively desingularized by smearing
the vorticity over a cell area. This is equivalent to the introduction of some artificial
viscosity.
The disadvantages of the VIC scheme may be summarized as follows:
It makes an otherwise grid-free method once again grid dependent. Thus the minimizing of the blockage effects in bluff-body flows may require a prohibitively large
number of cells. The pseudoviscosity introduced by the VIC method, and considered
earlier as an advantage because it desingularizes and stabilizes the velocity field calculations, can also be viewed as a disadvantage. This is so because the Eulerian step
54
smoothes the conceptual diffusion of vorticity before we apply the diffusion fractional
step. Another disadvantage is that the flow features that are of scale smaller than
the grid cannot be accurately resolved.
As an alternative to the above finite difference scheme, vortex to vortex BiotSavart convective interactions can be calculated directly for the grid distribution of
discrete vortices Fi
to provide the mesh point convection velocities (ui,j, vi,j). The
bonus is that a set of unit coupling coefficients may then be calculated once and for
all at the outset linking mesh points and may be stored permanently in an array.
Since in a regular rectangular grid for any pair of mesh points distant (in)
apart
in the x and y the coupling coefficients are the same, additional economies of storage
may be accomplished.
4.1.2
Accuracy and Performance of the VIC Method
Numerical Implementation
The method of Vortex in Cell was tested for convergence using a problem for which analytic solution is available. This simple problem is a pair of vortices of equal strength
and same sign in an inviscid flow. We know that the vortices will rotate in a circular
orbit of diameter equal to the distance of the vortices, i.e. they will at all times be
anti-diametric as shown in figure 4-1.
The Poisson equation was solved using the method of Successive Overrelaxation
(SOR) with Chebysev Acceleration. At every time step the solution at the previous was used as initial condition for the SOR iterations. This method was chosen for
its simplicity in implementation especially for the case of nonuniform grid. However,
it is realized that to make meaningful benchmarking comparisons of this method with
other methods, an FFT or Multigrid Method would be better as they would converge
faster. Note that the efficiency of the method and its benefits rely greatly on the
existence of well developed Fast Elliptic Solvers.
55
I.. IIII.I
I.. .-
. M*A
-
-
Figure 4-1: Two vortices of equal strength rotating in circular trajectory.
A Second-Order Runge-Kutta scheme was used for the integration of the velocities
and updating of the particle positions.
For a regular square grid, uniformly refined the storage of the Laplace operator's
finite difference coefficients is minimal. Indeed at every grid point:
asij = 1 ,
byij = 1 ,
cijy = 1 ,
dijy = 1 ,
eijy = -4
,
V i,
In the case of orthogonal grid with uniform refinement in each direction equation 4.5
can be used.
Effect of grid on accuracy and performance
For the problem of the rotating pair of vortices we run three sets of numerical experiments.
On the first set the time step At and the maximum extend of the grid were kept constant and the density of the grid was varied, to investigate the sensitivity of the error
56
-
-
.0
Mesh: [-5.0,-5.0]x[-5.0,5.0] ; A t = 0.005
x 10-e
2.5-
-e- Vortices Initially at Center
-4-Vortices Initially at Edge
\'
2-
L-01.5
1
/
I
\.
0.5
~,
I
50
60
70
80
I
120
90
100
110
Nx = Ny (Grid Points in each direction)
I
130
140
150
-e- Vortices Initially at Center
--- Vortices Initially at Edge
18 F
16
-/
-/
14
-/
12
-/
E
- 10
-/
S8
-/
6
-/
4
-
-
I
II
I
I/
2
50
60
70
80
120
110
100
90
Nx = Ny (Grid Points in each direction)
130
140
150
Figure 4-2: Grid Refinement Dependencies for Vortex In Cell Calculation of two
vortices of equal strength I' = 1, and distance d=1 from each other.
57
to the grid size (Ax, Ay). The results are shown in figure 4-2. The error was defined
as the maximum of the total error of 4000 time steps. By total error it is meant
the error in the positions of both vortices compared to the known correct positions.
Figure 4-2 shows a fluctuation of the error as we move to higher resolutions. Those
fluctuations however are very regular allowing us to pass two distinct curves from the
points. The reason of the fluctuations is the initial position of the two vortices with
respect to the superposed mesh. Indeed the vortices were placed at (
0.5 , -0.5 ).
In some of the cases those points were internal, in fact central points of the grid, and
in other cases they were lying on a cell's edge. This was the situation initially and it
didn't persist throughout the simulations as the vortices move around. However, due
to the circular trajectory more such occurances are possible. This shows some dependence of the error on the relative positions of the vortices with respect to the grid.
Note however that when applying the method in a real problem with many vortices,
some of them will be near and some far from the edges resulting on a smoothing of
this effect. The two curves seem to be narrowing their gap as we increase the grid
refinement. They also seem to convergence since the error is reducing with increasing
number of grid points.
From the second plot in figure 4-2 we see that the average time required per time
step is slightly smaller in the case that gives the higher error. In the case that the
vortex lies on an edge its vorticity is distributed on two instead of four grid points that
is generally the case. This makes the inhomogeneity in Poisson's equation less smooth.
On the second set the time step At and the grid size (Ax, Ay) where kept constant
and the extent of the grid was varied to see how the error varies with the truncation
of the grid (Fig. 4-3). Figure 4-3 shows a significant reduction of the error as we
increase the total size of the mesh even though we kept the grid size Ax constant.
At infinity we used Dirichlet boundary conditions for the Poisson equation. We know
that the stream function of a point vortex is, I = 1 log(r) and is constant along
circles of constant r. To form the Dirichlet condition on the truncated boundary we
58
2EW
Constant dx=dy=0.1 - Influence of infinity placement
X 10-3
2-
1.8 --
1.60
1.4-
1.2-
-
0.8 40
50
60
I
I
40
50
60
70
Mesh Area
80
90
100
110
70
Mesh Area
80
90
100
110
4.540.
-
3.5
E
3-
-
2.5
21.5-
Figure 4-3: Grid truncation dependencies for Vortex In Cell Calculation of two vortices of equal strength IF = 1, and distance d=1 from each other
59
calculated the total strength of the vortices within the domain and their centroid.
Then we used this roughly equivalent vortex to calculate the stream function at infinity. The assumption here is that at infinity the local details of the vortex structure
are going to have small effect, and thus we can make this crude approximation for
the sake of efficiency. This condition can be thought of as the zeroth order multipole
expansion of the vortex group around its center. Figure 4-3 shows how big the effect
of the above assumptions and the truncation of the grid is. The second plot shows the
average time per time step executed to increase almost linearly. This is reasonable,
because in order to keep the resolution constant we had to increase the number of
grid points as we enlarged the grid. Thus, the number of unknowns and the system
to be solved was growing accordingly. The flat region in the beginning of the plot
is most likely due to the fact that the solution of the system is not the major factor
determining execution time at this smaller number of unknowns.
Effect of number of particles on execution time
To that point we have not seen how the efficiency of the method depends on the
number of particles. To address this question a third set of experiments was run for
two vortices represented by a number of numerical vortex blobs. The number of blobs
representing each of the vortices was changed in the range
{100, 300, 500, 700, 900,1200,1500, 2000}.
The number of grid points was kept constant and equal to 100 in each direction. The
total grid area was also kept constant. Figure 4-4 shows the time comparison in real
and logarithmic scale between the direct calculation and the vortex in cell method.
We see the considerable benefit of the use of the VIC method as the number of particles in the flow increase. The execution time per time step is rather insensitive to
the increase, as it is also indicated from the slope of the corresponding logarithmic
curve in 4-4. We have to note however that the error was in the order of 10-. The
error here is defined as: e =
N
z
Evc
-
error would require a denser grid.
60
iexc U2
at every time step. Reducing the
MME
-
S
-0-
E[
exact
VIC
20-
E
15-
10-
5-
0
500
-G---
1000
1500
----.----------
-e---
2000
2500
Number of particles
3000
- - -- -
1
-
o---o--0
4000
3500
-0- VIC, slope=0.0054958
E Direct, slope=2.0178
1.81.61.4.~1.2
0
0.8-j
0.60.40---
0.20
0
0.5
1
2
2.5
1.5
Log(Number of particles)
-
0
03
3.5
Figure 4-4: Average execution time per time step as a function of the number of
particles.
61
Numerical diffusion of the VIC scheme
Earlier in this chapter when the advantages and disadvantages of the VIC method
were discussed, we mentioned the artificial viscosity we bring into the solution by
introducing a grid in an otherwise grid-free method.
The first such effect is introduced when we interpolate the vorticity carried by
the vortex blobs onto the corners of the cells that contain them. We used bilinear
interpolation as described earlier. This introduces an error of the order of 0(h2 ).
Further error is introduced because of the truncation of the Taylor series expansion
in our finite difference scheme. The differencing truncation error was of the order
0(h2 ). Similar error we get when obtaining the velocities at the grid points from the
calculated stream function. The VIC method can be used with higher order interpolation and differencing schemes leading to reduction in the error for a given grid size.
To identify the manifestation of numerical diffusion in the results of the VIC code
we constructed the following numerical experiment: A vortex was discretized by 250
vortex blobs. The initial distribution of the vorticity was created by running several
random walk diffusion steps. Then diffusion was turned off so that all the diffusion
observed on the vortex can be attributed to the numerical diffusion. The radius of
gyration was used as a measure of the numerical diffusion similarly to Chapter 3.
Then we saw that the radius of gyration was proportional to
4vt The results are
shown in figure 4-5.
The second plot is counter-intuitive because it shows reduction of the numerical diffusion with reduction of the resolution for most part of the curve.
However the
differences are very small as seen in the first plot of figure 4-5 and maybe the relative
comparison is particular to this run. Other runs not included here also showed nonmonotonic dependence of the numerical diffusion to the grid size.
62
-
IWI!MWIW
-
WO -
-,
-
.
!" -*
0.028
-+- h =0.0033333
S+h =0.0025
0.026-
--
h =0.002
h =0.0016667
h =0.0014286
0.0240.0220.02-
0.018
0.016-
0.014
0.012
0.01t
0
0.5
1
1.5
2
2.5
t
3
3.5
4
4.5
5
-
0.0265
0.0265
0.0265
0.0265
0.0265
0.0265
0.0265
0.0265
0.0265
0.0265
1. 4
1.6
1.8
2
2.2
2.4
h
2.6
2.8
3
3.2
3.4
x 10F
Figure 4-5: Upper plot shows radius of gyration as a function of time for different
grid spacings. Lower plot shows radius of gyration at t=5 as a function of the grid
size.
63
4.1.3
Application - Two rotating vortices in proximity
The emergence of coherent structures is a characteristic of two-dimensional turbulence. In the ocean and in the atmosphere vortices or eddies are abundant. For that
reason the study of the dynamics and mutual interaction of isolated vortices is of fundamental interest. For better understanding of the dynamics of evolving turbulence
insight into the merging of two vortices is essential.
The method of Vortex-In-Cell was applied to study the evolution of two vortices
of finite area placed at various separating distances.
To generate the initial conditions we specified the number of physical vortices
and its center location. The total circulation and the number of vortex blob that
will resolve each physical vortex were also specified. Those vortices were originally
allowed to undergo pure diffusion so that a smooth Gaussian distribution of each
vortex around the specified center locations is created. Then the evolution was simulated by the VIC method. The particle evolutions for various spacings are shown in
figures 4-6, 4-7, 4-8. Figure 4-9 shows the vorticity contours for the smallest spacing
examined. The snapshots of vorticity contours of figure 4-9 do not correspond to
those shown 4-9 although the run is the same. Figure 4-9 shows the first stages of
the interaction while figure 4-6 extends longer in time.
From the figures we see that when the vortices are in sufficient proximity the deform and eventually they merge forming an elliptic vortex. How soon the merging
will occur depends on the distance of the centers of the vortices and their spreading
and strength. More spacings were tested that are not shown for space economy. For
given vortex areas and strengths the more the distance of the centers the later the
merging will occur. After some separation distance merging never occurs but there
is a periodic oscillation of the vortex shape which deforms from the original circular
shape and returns to it periodically.
64
0.2
0.2
0.15
0.15
0.1
0.1
0.05
0.05
*
0
C1
0
>0
e~~
-0.05
-0.05
-0.1
-0.1
-0.15
-0.15
ow
em,
, I 1 . 11 . 11 .
.
-O9.2
0
-0.15
-0.1
-0.05
0.05
0
V1
0.1
0.15
0.2
.2
0.2
0.2
0.15
0.15
0.1
-0.15
-0.1
-0.05
0
V1
0.05
0.1
0.15
0.2
0.1
0.15
0.2
0.1
0
0.05
0.05
0
t*0
CM 0
>0
-0.05
-0.05
a,
0
0
-0.1
-0.1
-0.15
-0.15
Og
a.
...........I.......
.2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
0.2
.12
V1
0.2
0.2
0.15-
0.15
*0
0.1
0.05
-0.1
-0.05
0
V1
0.05
0.1
0.05
S
N 0
-0.15
C
0
0
8%*
Ob
-0.05
-0.05
68
-0.1
-0.1
-0.15
-0.15
.02
-0.15
-0.1
-0.05
0
V1
0.05
0.1
0.15
I
-0.2
0.2
-0.2
-0.15
-0.1
-0.05
0
V1
0.05
0.1
0.15
0.2
Figure 4-6: Interaction of two vortices with F = 1.0 each represented by 300 vortex
blobs. (s=0.10)
65
0.2
0.2
0.15
0.15
0.1
0.1
0.05
0.05
CM 0
M0
-0.05
-0.05
-0.1
-0.1
-0.15
-0.15
.2
-0.15
-0.1
-0.05
0
V1
0.05
0.1
0.15
0.2
0.2
02
0.15
0.15
0.1
0.1
0.05
0.05
>
-0.15
.2
.5
-0.1
-0.05
-0.05
-0.1
-0.1
-0.15
-0.15
2
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
0.2
-. 1!ti'-0.05
VI
0.2
0
VI
0.05
0.1
0.15
0.2
0'
V1
0.05
0.1
0.15
0.2
0.05
0.1
0.15
0.2
0.2-
0.15
0.15
0.1
0.1
0.05
0.05.
0
0
-0.05
-0.050
-0.1
-0.1
-0.15
-0.15
m
-0.05
>0
0
-0.
2
.2
-0.15
-1
-0.05
0
0.05
0.1
0.15
0.
0.2
V1
Figure 4-7: Interaction of two vortices with
blobs. (s=0.15)
66
F
.2
-0.15
-0.1
-0.05
0
V1
= 1.0 each represented by 300 vortex
0.2
0.2
0.15
0.15
0.1
0.1
0.05
0.05
S*
S0
Cm'
~0
-0.05
-0.05
-0.1
-0.1
-0.15
-0.15
2
-0.15
-0.1
-0.05
0
VI
0.05
0.1
0.15
0.2
.1 ....
2
0.2
0.15
0.15
0.1
0.1
0.05
0.05
0
> 0
-0.05
-0.05
-0.1
-0.1
-0.15-
-0.15
-
0.2
>
S
>0
-0.15
,
S
-0.15
-0.1
-0.05
0
V1
0.05
0.1
0.15
0.2
.2
0.2
0.2
0.15
0.15
0.1
0.1
0.05
0.05
-0.05
0
0.05
V1
0.1
I
-0.15
I ,
-0.1
I ,
,
-0.05
I
0
, I
,
0.05
C
-0.05
-0.1
-0.1
-0.15
-0.15
-0.15
-0.1
-0.05
0
V1
0.05
0.1
0.15
0.2
0.15
0.2
0.15
0.2
V1
.
-A-
0
-0.05
').2
0.2
I
0.1
W]
N 0
0.15
S
,,I,
.2
dilldki l
1-
-0.1
-0.15
-0.1
-0.05
0
VI
0.05
0.1
Figure 4-8: Interaction of two vortices with 1' = 1.0 each represented by 300 vortex
blobs. (s=0.20)
67
0.2
0.2
0.15
0.15
0.1
0.1
0.05
0.05
0
>
>
0
-0.05
-0.1
-0.1
-0.15
-0.15
-0.1
0
0.1
0.2
0.2
0.2
0.15
0.15
0.1
0.1
-0.2
0.05
-0.2
0.05
>0
> 0
-0.05
-0.05
-0.1
-0.1
-0.15
-0.15
-0.2
-0.1
0
0.1
0.2
-0.2
0.2
0.2
0.15
0.15
0.1
0.1
0.05
-0.1
0
0.1
0.2
-0.1
0
0.1
0.2
0.1
0.2
40.05
x
0
-0.05
0.05
-0.1
-0.1
-0.15
-0.15
-02
-0.1
0
x
> 0
0.1
0.2
-02
-0.1
0
Figure 4-9: Vorticity contours of two interacting vortices. (s=0.10)
68
We can also conclude that there must be a critical spacing that separates the cases
of merging and non-merging but we were not able to capture it. It must however require more than 7 rotation periods of the vortex pair. In cases near the assumed
critical spacing we observed the following interesting flow feature.
Particles were
jumping from one vortex to the other as they were oscillating. Similarly, in the contour plot we could see a lightening of the field between the two vortices when they
were mostly deformed and a darkening at subsequent times steps as the vortices were
taking back a mostly circular shape.
69
4.2
The Method of Local Corrections
With the Method of Local Corrections proposed by C. Anderson [2] we can reduce the
+
operation count of the Vortex Method from O(N 2 ) to approximately 0(M log Al)
O(N) where M is a constant that does not directly depend on the number of vortices.
The method essentially substitutes the right hand side of equation 4.2 with an approximation chosen so that the evaluation of it at the points Yi requires less than
O(N 2 ) operations. The efficiency of the method is attributed to the fact that for
constructing and evaluating the velocity field due to collection of point vortices only
0(M log M) + 0(N) operations are needed. The corrections to the velocity are confined to small regions about the center of each vortex, the correction step requires
approximately O(N) operations. Thus we obtain that the total operation count of
the method is 0(M log M) + 0(N). The Method of Local Corrections takes advantage of the fact that the velocity field induced by a vortex is harmonic away from the
center of the vortex.
As we saw before the vorticity field can be approximated in discrete form by the sum
of the contributions of all the vortex particles in the computational domain:
N
0~,t
j=1
(4.10)
fj(' - , )wjx
where 7Y is the center of the jt' blob and wj is the strength of the jth blob. Using
the two-dimensional Green's function for Laplace's equation
1
G = -logr
(4.11)
27r
then solving equation 2.9 for the Stream function:
N
(4.12)
-
=f6
j=1
E [G * f6 ( -7j)wj]
j= 1
70
(4.13)
-j (x-
where * denotes convolution. Taking the curl of the stream function we obtain the
components of the velocity
Xjw
(yw
(4.14)
U =
N
X
j=1
j=1
If we denote K61
= -
and K62
G*f,)
(G*f6
)
(G *f 6 )
N
= 9(G*f5
and K6=(Ka1 , K- 2 ).
If f6 depends on r alone then K6 can be computed explicitly.
The method consists of the following basic steps:
1. Obtain values of the velocity at the nodes of a grid covering the computational
domain.
2. Interpolate the values of the velocity from these grid nodes to the centers of the
vortices.
3. Locally correct the velocities obtained.
Assume at this point a computational grid centered at the origin, with width h in
each direction. For simplicity we will describe the method for one point vortex. To
account for many vortices the procedure would just be repeated using the principle
of superposition that results from the linearity of the problem.
In the first step we obtain an approximation for the velocity components at the nodal
points by solving with a fast Poisson solver the equation
Ahii(i
h, jh) = g~x (i h, j h)
(4.15)
(i h, j h)
(4.16)
Ahj(i h, j h) = g
where the functions g(X) and gY) are calculated from the following equations:
W
Ahu(ih,jh)
0
fori,j such that I ih < D and
jh 1< D
fori,j such that lih J>Dor 1jh ;>D
71
(Y)
/Ahv(i h, j h) for i, j such that Ii h 1< D and I jh 1< D
0
fori,j such that Iih I Dor Jjhl D
The next step is to interpolate ii and i3 to the centers of the vortices. The bilinear
interpolation discussed in the previous section could be used. However, one can use a
special feature of the velocity field due to a point vortex to obtain high order accurate
interpolation formulas. Away from the center of the vortex the two components of
the velocity field form the real and imaginary parts of a complex analytic function
given by:
F(z) = u - i v
(4.19)
Here the complex plane is identified with the x-y plane : z = x + i y. The validity
of equation 4.19 comes from the fact that u, v are harmonic. We use an extension
to the Lagrangian interpolation formula to the complex plane. Given n points in the
complex plane, zi, i = 1, ...
, n an interpolation formula for the function F(z) is:
_ n
z -
zi
F(z) - E F(zj) H
j=1
(4.20)
i03 (zi - zi
If the points zi are at adjacent nodes of a grid with sides of length h, then the
accuracy of the interpolation formula 4.20 is approximately O(h"). We remark that
very near the center of a vortex, the interpolation formula will not do well because of
the singularity in the complex function defined by a point vortex.
After we have completed the steps described above we apply the local corrections to
the velocities obtained. For a given vortex the correction consists of subtracting the
component of its velocity which is due to interpolating the velocity field of nearby
vortices and then adding the correct velocity due to the nearby vortices.
This step for the jt" vortex can be defined as:
AV
=
T Ct-
72
el vftr
(4.21)
where:
AV'g avelocity correction for j'h vortex.
Wj E exact velocity contribution due to all vortices such that
v"? E interpolated velocity contribution due to vortices such that
C is a parameter to be determined. In the above formula
C.
iXi-
<jnt
C.
JV
5 t is evaluated using
4.14. To calculate the term (j"r, one first finds the values of the velocity induced
by nearby vortices at the set of nodes used in the interpolation formula for the
jth
vortex. These velocities are evaluated using 4.14. The interpolation formula for the
j t h vortex is applied to these node velocities and the result is the local contribution
to the interpolated velocity field.
Note that special care has to be taken when it comes to determining which vortices
are close and which are far from a given vortex. If in order to determine this we
compute the distance between a vortex and all its neighbors, then we are adding an
O(N 2 ) operation count to the algorithm. We can overcome this difficulty by taking
the following steps.
1. Cover computational domain by a mesh not necessarily the same as the mesh
used in the previous steps. This mesh is referred to in the literature as 'chaining
mesh'.
2. Give to each vortex a tag that indicates the grid box of the chaining mesh that
the vortex resides in.
3. Sort the vortices and link all vortices with the same tag with a linked list.
With this data structure one can efficiently obtain which of all vortices lie within the
given radius of a vortex.
73
_zfor I z <1
4.3
4.3.1
The Method of Fast Multipoles
Basic Definitions and Notation
The method of Fast Multipoles was first proposed by Greengard and Rokhlin [27]
for particle simulations of gravitational and electrostatic fields. It is however easily
applicable to the vortex method. From the discrete form of the vorticity field 2.14
with r; = 6(x - x) we can express the velocity field in complex form as:
iN
V(Z)
F
=-
(4.22)
27r n=1 Z - Zn
where Z = x + i y and V = u - i v.
The motivation behind this method is the
calculation of N particles' interactions in less than O(N 2 ) operations. The basic idea
of the algorithm is to break up the calculation of the velocity field into two parts.
One part is the velocity induced by nearby vortices and the other is the velocity
induced by far away vortices. The contributions of the nearby vortices are calculated
directly while the contributions of a cluster of far vortices with center ZM are added
in the form of multipole expansions. This is the basis for the Particle-Box scheme.
The Box-Box scheme introduces an extra step. The expansions of a certain cluster
may be translated and computed at the center of another cluster. Subsequently these
expansions are used to determine the velocity of the particles in the second cluster.
By retaining a sufficient number of terms in the multipole series expansions the far
field contributions can be computed to any desired accuracy. The derivation of those
expansions is based on the following two identities of complex numbers:
:
(4.23)
n=0
P
E 0k (Z-Z)
k=O
P
P
k
(zo)
:Z
1=0
kk=1
(4.24)
( 1/
Before we give more on the formulation we will describe the notation in a little more
detail. We enclose the ensemble of point vortices or particles in a square. This is
74
referred to as the ComputationalDomain and it is also the only box of level zero. We
can bisect this box vertically and horizontally to obtain four new squares of half side.
Those are the boxes of level one and are the children of the level box 0. Equivalently
we state that level box 0 is the parentof these four boxes. We can continue this process
as many times as desired, obtaining at level I a partition of the computational domain
into 41 boxes. To improve efficiency the refinement can be made adaptive. That means
that not all boxes are refined. Boxes that are not further refined are called childless.
By higher level is meant a level with smaller value of 1, and by lower level a level with
larger value of 1. Thus the lowest level in this box structure corresponds to the largest
value of 1, denoted by
1
ma.
For any box the collection of nearest neighbor boxes or
colleagues is the set of all other boxes at the same level which are adjacent to the
given box. Two boxes are considered adjacent if their boundaries have any point in
common. For a given box we can constitute five interaction lists according to the
following criteria:
1. List 1 of a box B will be denoted by UB. If B is a parent box UB is empty. If B
is childless, UB consists of B itself and all childless boxes adjacent to it. Note
that the adjacent boxes do not have to be of the same level as B.
2. List 2 of a box B will be denoted by VB. It is formed by all the children of the
colleagues of B's parent that are not adjacent to B. Note that the cells in the
list VB do not have to be childless.
3. List 3 of a box B will be denoted by WB. If B is a parent box WB is empty.
If B is childless WB consists of all descendants of B 's colleagues whose parents
are adjacent to B, but who are not adjacent to B themselves. Note that B is
separated from each box W in WB by a distance greater or equal to the length
of the side of W.
4. List
4 of a
box B will be denoted by XB. It is formed by all boxes C such that
B E WC. Note that all boxes in XB are childless and larger than B.
75
5. List 5 of a box B will be denoted by YB and consists of all boxes that are well
separated from B's parent.
For a fixed box B at a level 1, the boxes that consist the tree structure are partitioned into five subsets, UB, VB, WB, XB, YB. The set of particles as viewed by
a particular box B is also subdivided to the sets, T(UB), T(VB), T(WB), T(XB),
T(YB).
Each one of these sets contain the vortices that are contained in the boxes
that consist the corresponding lists.
4.3.2
Formulation and Method Outline
Adding and subtracting ZM on the denominator of 4.22, the velocity field induced by
a box at he lowest level and enclosing M vortices may be expressed as:
iM
V(Z) =) 2,7r
Z- Z
m=1
1
+
+
5)M
(4.25)
m
-~zm
Using 4.23 and truncating the infinite series keeping P terms we can write the
velocity:
( ak
(4.26)
Z
V(Z)=
2rZ -ZM
k=0
Z-
M)
The complex coefficients ak express the moments of the discrete vorticity distribution
in the cell and are computed by the following formula:
M
ak = E
Z
m(Zm _ ZM)k
= 0,-., P
(4.27)
m=1
where ZM is the center of the cluster of M vortices. The expansion converges at
each point outside a circle of Radius RM at a rate proportional to (RM/R)P+'. This
states that the series converges at geometric rate.
For each box at the next higher level of the hierarchy we do not construct directly the
coefficients of the expansion. Instead we obtain them by shifting the expansions of
76
their descendants. To obtain the expansions of a parent box from those of its children
we use the property 4.24. We then get:
I
n
1-
a
=
k=
Z-T
ak Z
k
- Z
(4.28)
( k)
In the above expression I is the level in the data structure hierarchy. The above
procedure is repeated beginning from the lowest level and going upwards in the hierarchy and this is why those steps comprise the upward pass. The above steps are the
main tools of the Particle-Box algorithm.
To move to further on the next step we have to recast the Laurent series into Taylor
series and consider the interactions between clusters of vortices. To account for those
interactions we basically shift the center ZM of the expansions of one cluster (M) to
the center ZG of another cluster (G). Those expansions are then used to compute the
velocity of the particles in each box. This result has a strong impact on the complexity of the algorithm as it eliminates the log N factor from the operations count of the
scheme.
We add and subtract ZG in the denominator of the expression 4.22. The velocity
induced by the group M at a point Z in the neighborhood of ZG is:
P
V(Z) = -E
27r k=O (ZG
Z-ZG
Substituting
ak
-
a
zM)k+l (1 + ( Z-Z
k+1
we get:
we get:
=z-Z
ZG ZM
ak
V(Z)=
27r
Then expanding for
(ZG -
ZM)k+l(1
+
)k+1
using 4.23 we get for the velocity field induced by particles
77
in the cluster M, at a point Z in the neighborhood of ZG from the expression:
P
V(Z) =
27r
k
(Z
-
4.29)
Z
k=1
where the coefficients /3k are determined by:
(-)k+1
k + m - 1am
P
(ZG -
(4.30)
(ZG - ZMf
m
_M=
The velocities of the individual particles are computed from the expansions of the
lowest level boxes in the hierarchy. Therefore, using 4.24 we find that the expansions
of the higher level boxes are transferred down to their descendants recursively according to the formula:
,3+=
P
(
k -- 1
k=n
(k
-
)
(Z+
1
- ZI)k-"
(4.31)
n)
Note the qualitative difference of the coefficients an and /n.
The coefficients an
are used to compute the velocities due to particles that belong to well separated
boxes, while the coefficients on of a box are used to compute velocities on particles
of the same box.
The algorithm can be outlined in the following steps:
1. For each childless box B use 4.27 to construct a Laurent series which converges
at each point outside some circle containing B to the velocity induced at that
point by the particles inside box B.
2. For each parent box B at the next higher level use the Laurent series constructed
in step (1) for the children of b and equation 4.28 to construct a Laurent series
for b which converges at each point outside some circle containing B to the
78
velocity induced at that point by the particles inside box B.
Repeat this time step for each higher level, finishing with the single box at level
0.
Remark: The circles of steps (1) and (2) are chosen so that all boxes other than
the box in question and its nearest neighbors lie completely outside the circle.
Hence the Laurent series for a given box converges to the velocity induced by
particles inside that box at all points outside that box and its nearest neighbors.
The interactions between particles in box B and particles in T(UB) are computed
directly obtaining the field
aB-
3. For every particle r in B we compute the field due to all particles in the boxes
consisting WB by obtaining the multipole expansions of each box in WB at the
particle r and adding them up. The resulting field is denoted by L3B.
4. We use 4.30 to convert the multipole expansion of each box in VB into a local
expansion about the center of B and add the resulting expansions to obtain FB5. We use 4.31 to shift the center of the local expansions of B's parent to the center
of B, and add the local expansion obtained to the previously calculated FB.
6. The field of each particle within T(XB) is converted into a local expansion about
the center of box B and the resulting expansions are added up to obtain AB.
7. For every box B, we evaluate the sum of the local expansions FB and
every particle r in B and add the result to
aB
and
3B
AB
at
obtaining the resulting
field at r.
Remark: Note that in the above expressions interactions between particles
in B and those in T(YB), were never explicitly calculated. Those interactions
however were accounted for by shifting the local expansions VB and XB from
the parents to the children, when we performed what is called Downward Pass.
79
4.3.3
Data Structure and Implementation
The vortices within the flow field are stored in a doubly linked list. Each node of the
list includes the information of the vortex blob and two pointers, one pointer to the
previous and one to the next element in the list. The vortex blob information are
the coordinates of the center of the blob, its strength and its radius. The vortex list
consists of a pointer to the head of the list and a pointer to the tail. It also stores
the number of vortices contained in the list. This data structure gives as the benefit
that we can add and subtract nodes to the list by allocating or freeing exactly the
necessary memory. The reason we use doubly instead of simply linked list is that it
allows as to traverse the list in both directions. This can beneficial to the efficiency
as access to the elements of the list can be granted by both the head and the tail.
Especially in the problem of a body in external flow the vortices that are generated
at earlier times will be nearer the tail and those most recently generated will be near
the head of the list. So when we want to operate on the newer ones for example to
see if they have penetrated the boundary, we don't have to traverse the whole list.
Similarly when we want to redistribute the vorticity, an operation that is better to
be performed away from the body, we can do the traversing from the tail. The above
data structure is used throughout the implementation and it is not particular to the
Method of Fast Multipoles.
For the purposes of the method we defined a new system of numbering not directly
supported by the programming language but defined as a Derived Data Type in
fortran 90/95 or class in C++. A tet-digit was defined as a cartesian product of two
logical bits or equivalently as a set of two binary numbers. Thus we have the following
correspondence:
.0=
FALSE
FALSE
FALSE
TRUE
80
.2=
TRUE
FALSE
3=
TRU
1
TRUE
A tet-number is a set of tet-digits. Note that for reasons that will become obvious
later the leading zero matters in our case. This means that the numbers 011 and 11
although they both correspond to the decimal 5 for our purposes are not equivalent.
The fact that the first one has three digits while the second has two digits is making
their roles distinct.
A cell is defined as four points oriented counterclockwise starting from south-west
(SW). A node of the tree contains the following information:
1. The level I in the tree that the node belongs and it is an integer.
2. A tet-number that identifies the particular node and also contains by construction the information required to reach that node beginning from the root as will
be explained later.
3. The Cell's four point coordinates.
4. The Cell's Centroid.
5. A logical bit that gets the value TRUE if the node is childless and FALSE if it
is parent.
6. A logical bit that is used for various purposes within the program. One of them
is to indicate if this particular box has already been added to an interaction list
so that it will not be added twice.
7. A linked list of pointers to nodes of the vortex list data structure. This economizes storage as we have the information and can access the memory locations
of the actual vortices that are contained within the cell by storing only a list of
pointers. We can also loop over the vortices within the cell just by traversing
the list of pointers.
81
8. The complex Laurent Series Coefficients of the box, obtained during the Upward
Pass as described previously.
9. The complex Taylor Series Coefficients of the box, obtained during the Downward Pass as described previously.
10. A vector of tet-numbers consisting the UB list of the box.
11. A vector of tet-numbers consisting the VB list of the box.
12. A vector of tet-numbers consisting the WB list of the box.
13. A vector of tet-numbers consisting the XB list of the box.
14. A pointer to the parent of the node.
15. Four pointers, one for each child of the node. If the node is childless those
pointers are null.
The tree structure consists of a pointer to the Root of the tree, and an integer
that describes the finest level of refinement in the tree. The root is identical to the
zeroth level node and basically covers the whole computational domain.
Because the position of the vortices in the computational domain change as they
are convected with the induced velocity, at every time step we have to regenerate the
tree structure.
Instead of refining at every time step we can choose to refine the mesh uniformly
in the beginning , regardless of the positions of the vortices just by specifying the
maximum level of refinement. This choice has the advantage that creating the tree
and establishing interaction lists need only be done once and then can be saved for
subsequent steps. The expansion coefficients will still need to be recalculated at every time step. On the other hand the disadvantage of this choice is that we end up
with a big number of childless cells that may be empty of vortices, but they will
exist occupying memory and being traversed in every scanning of the tree. We have
82
33
32
2
302
31
300
301
033
032
02
032
01
00
0
Figure 4-10: Example of 4 times non-uniformly refined computational domain.
implemented both ways.
Note that establishing the interaction lists is taking up a considerable portion of
the total time that the method needs to calculate the field. We will show later, how
our new method of addressing the tree using tet-numbers, and some observations on
the structure of the tree can make the establishment of those lists efficient.
For better illustration we will present an example.
Consider the mesh shown in
figure 4-10. We will ignore for the moment any vortices in the mesh, as well as how
the mesh was created and focus on the tree structure itself.
The corresponding tree structure of the boxes involved in this mesh is shown
in figure 4-11. From 4-11 is obvious that the tet-id of the node-box indicates the
sequence of branch choices that the pointer has to make in order to reach the node
beginning from the root. The number of tet-digits that the tet-number id consists of,
83
Root
0
0
3
03
1 01 j02
08003
3
as32
30
032
0301
Soo
800
3
301Q
30 2
303
Figure 4-11: Tree structure corresponding to mesh shown in figure 4-10
Table 4.1: Correspondence of Tet-Ids to Integer Couple for Cells in the Mesh of Figure
4-10
ID
0
1
2
3
00
01
02
03
L
1
1
1
1
2
2
2
2
K
0
1
2
3
0
1
2
3
ID
30
31
32
33
030
031
032
033
L
2
2
2
2
3
3
3
3
K
12
13
14
15
12
13
14
15
ID
300
301
302
303
0300
0301
0302
0303
L
3
3
3
3
4
4
4
4
K
48
49
50
51
48
49
50
51
ID
3030
3031
3032
3033
L
4
4
4
4
K
204
205
206
207
is revealing the level of refinement that the particular cell belongs to. That is why
any leading zeros matter.
With this construction every tet-number id = did 2 ... dL can be mapped to a couple
of integers (L, K). Where:
L
K = Zdi x
4 L-i
(4.32)
i=1
Table 4.1 illustrates the correspondence for the example of 4-10.
To traverse the tree we have an external loop to loop over the tree-levels, and an
internal loop that traverses the width of the tree. The maximum possible width of
84
the tree is 41 where I is the current level. In the case where the computational domain
is not uniformly refined, we can improve the tree horizontal traversing efficiency. Let
's say we are traversing the cell at level 1. The range of the integer loop with the
brute force way is k = 0... 41 - 1. For every one of those the pointer begins from
the root and points down I levels according to the id of the cell that is determined
by the couple (1, k). We will illustrate this by going back to our example (figure
4-1). Scanning the cells at level 1 = 4 would require 44 = 256 attempts. As seen
in figure 4-2 we only have 8 cells at this level. Note also that each attempt requires
progressing the pointer from the root towards the cell until either the cell is reached
if it exists, or a childless cell is encounter at an earlier level. That means that in our
example while scanning the level four we would make 256-8=248 failed attempts. To
make the horizontal scan efficient and avoid the failed attempts we present two simple
strategies. Note here that the two different strategies are illustrated each in a different
case. One for the case of the downward pass and the other for the case of upward pass.
In the downward pass, the strategy is the following:
In the downward pass we are scanning the tree from root going downwards towards
the leaves, i.e. increasing 1. At the level 1-1 we scan the cells that are known from
step 1-2. Let us denote by K
1
the number of cells at the level 1-1. The maximum
possible number of cells at level I is K' = 4 * K1- 1 . While we are scanning horizontally
the cells of level 1-1 we can check if every one of those cells is childess or parent. If the
cell is parent we can determine the id 's of the four children by adding an
1 th
tet-digit
to the id of the current cell. Going back to the example when we are looping the
third level and the index is at cell 030 we know that in the next level loop we have
to include the cells with ids 0300, 0301, 0302, 0303. The tet-numbers or the integers
corresponding to all the cells that arise like this are stored in a vector IND. In the
next level loop instead of looping horizontally from 0 to 256 we loop over the size of
the vector IND which has the exact number of cells at this level. The procedure is
repeated at every level during the downward pass. Note that in our data-structure
we had included at the cell-nodes of the tree the logical bit LST that immediately
85
Root
--
k=12
k=1
k-2
k=3
k=12
k=13
k=14
k-4
k4
k=48
k-49
k-60
k-51
k-264
-
index - 51
-s
->
k-
4
kw40
1f'
617
0-M~
k
=2
k=51
=3
=4
k-207
sk p
-
exist
- -I1
k=4
k=3
k=O
index-S5-
1- 52 -3, lst clltowrdsk-52 iscll031
I
index-52 4- 56 -Em
lest clltowadk-6 isf32
-3Isi-3rkipz-t4a(4a3)-4
index-56 4-66h
d33
cell towtdds k-6 iscels
- s-3-skip
s - 4(3) - p
- Care
indes - 6as 4- 64 -heftclltowaerdsk-64 s cell1 -s - -sepl
64t a
inde -64 +64-128 -3,last calltowards k-120is cll
2 -1ss- 1-3,skip -4(1)
-64index -128.64 - 192 -no
lost cell towards k-192 is coe
l 306 -) Is -3 - skip - 4^(43) -e4s
index -192# 4 -196 -3,laist cell towards k-196 is call301 -3Pls-3-3-skip-4(3)- 4
index -1964 4- 260 -3,last calltowards k-200is cell 302 -3s--3- skip -C4-3) -4
s
-
-l 3 sip -4(4-3) -4
=
k=O
index- 200e 4 - 204--exist-skip-
Figure 4-12: Example of skipping for efficient horizontal scanning
tells us if the cell at hand is childless or parent. To use this strategy for the upward
pass we can store the ids of the parent of the cells at level 1. Care has to be taken so
that the same cell is not stored four times on the vector that will be scanned at the
next level loop 1-1.
In the upward pass, the strategy is the following:
In the upward pass case we are scanning the tree from the leeves going upwards towards the root, i.e. decreasing 1. The strategy presented here can also be used for
the downward pass. We start the horizontal loop with the condition to return when
the index exceeds the number 41. The index is increasing its value inside the loop by
a skip number. If the cell that corresponds to the index exists then skip =1
.
If the
cell that corresponds to the index does not exist then the level of the childless cell in
the way from the root towards that cell is returned, say i. Then the index increases
by a skip = 4'-'. An example of this strategy is shown in figure 4-12.
We will now proceed by presenting how we can create a logical mapping of this
hierarchically refined mesh. So far we have illustrated how the cells are related to
86
their parent cells, and their children. It is very useful however, to find a way to correlate cells of the same level. We came up with a unique and efficient way that a cell
at a particular level can be assigned an integer pair (ij) indicating the (x,y) position
in the computational domain. Reversely, we can find the tet-id of a cell by knowing
its (ij) coordinates on a logical grid of cells at a particular level. This is very useful
as it is can speed up the process of establishing the interactions lists. Indeed, as we
will show shortly the relative positions of cells at the same level can be found without
involving float number operations at all. Just by going from the tet-id to the pair
(ij) and reversely.
Let's illustrate the method by an example. Say we are looking at the third level of
a computational domain. On the upper mesh in figure 4-13 we see the cells with their
tet-number addressing. Recall now that by construction each tet-digit was defined as
the cartesian product of two binary bits. This is expanded vertically on the lower mesh
in figure 4-13. Note that in each cell we have schematically I x 2 array of binary bits.
Note also that we can view each collection of I bits as a binary number. Indeed from
figure 4-13 it is obvious that the lower binary number is changing column-wise while it
remains constant row-wise. The opposite is true for the upper binary. Transforming
the binary numbers to integers gives us the column and the row number of a particular
cell. Following the reverse way we can map a pair of integers in the logical grid into a
tet-number that can be used in the hierarchical grid. The procedure described gives
us an efficient way for transforming between the logical grid and the hierarchical one.
Being able to efficiently transform between the logical and hierarchical grid allows
for more efficient establishment of the interaction lists. For example we can retrieve
all the colleagues of a given cell by finding its logical coordinates (ic, jC) then look
for cells with {(i, j) : i - ic I 1 and I j - jc
1
}, by
forming their tet-number
ids. Similarly many operations in the algorithm can benefit by knowing the relative
positions of cells in the logical grid.
87
II
222
223
232
233
322
323
332
333
220
221
230
231
320
321
330
331
202
203
212
213
302
303
312
313
200
201
210
211
300
301
310
311
022
023
032
033
122
123
132
133
020
021
030
031
120
121
130
131
002
003
012
013
102
103
112
113
000
001
010
011
100
101
110
111
000
001
010
011
100
101
110
111
110
000
110
001
110
010
110
011
110
100
110
101
110
110
110
111
101
000
101
001
101
010
101
011
101
100
101
101
101
110
101
111
100
000
100
001
100
010
100
011
100
100
100
101
100
110
100
111
011
000
011
001
011
010
011
011
011
100
011
101
011
110
011
111
010
000
010
001
010
010
010
011
010
100
010
101
010
110
010
111
001
000
001
001
001
010
001
011
001
100
001
101
001
110
001
111
000
000
000
000
000
000
000
000
000
001
010
011
100
101
110
111
Figure 4-13: Expand the tet-digits of the tet-number id of the cell into two logical
bits and arrange them vertically. Then form two binary numbers for each cell that
correspond to the integers (ij) of the logical grid.
88
4.3.4
Results and Discussion
To test the method two numerical experiments were constructed. For those experiments runs were done with systematic variation of the input parameters. The first
case employed was the one also seen previously and described at figure 4-1. For the
second experiment we simulated the motion of a pair of vortices of equal strength,
each represented by a number of vortex blobs N of strength
yj
= F/N, where F = 1.0
is the circulation of each of the two vortices and N the number of vortex blobs per
vortex.
The error was calculated pointwise, i.e. at every time step the velocity given by
Biot-Savart law at every vortex was calculated and this velocity was compared to the
velocity calculated by the method of Fast Multipoles. Two error norms were used for
each time step. The first is taking the maximum error of all the blobs' velocities, i.e.
=
max I Vnum - V
(4.33)
The second involves a sum of the squares of those errors, i.e.
-
N
(Vnum - Ve)
)
1
E2 =
(4.34)
Eventually the vortices were moved according to the velocity calculated with the
MFMP and then again at the new position the error in the velocity was measured.
A second order Runge-Kutta scheme was used for the integration of the particles'
trajectories.
At this point we have to elaborate a little more on how the adaptive mesh was
generated. In the theory of the method as was proposed by Greengard and Rokhlin
[27] the mesh is constructed so that every box has a preset maximum number of
particles. We have allowed more flexibility to the construction of the refined tree
by using three criteria or combinations of them. So we can construct a mesh by
uniform refinement just by specifying the maximum level of refinement. Then we
89
have several choices for the adaptive refinement by combining a minimum depth for
cells that carry vortices, a maximum number of particles per cell and a maximum
level of refinements. Not all of the three parameters have to be used. For example we
can construct a mesh only by stating the maximum number of particles per cell, or
by specifying the maximum number of particles per cell plus a minimum number of
levels for cells carrying vortices. An obvious alternative, and the one most commonly
used [37] until now is to specify the maximum number of particles and the maximum
allowable levels of refinement. It seems important in determining performance to have
good control over the way that the mesh construction rules are specified.
Two vortex blobs rotating at their induced velocities
For this case two sets of experiments were constructed.
On the first set the size of the computational domain and the level of refinements were kept constantbut the order of the expansions was varied in the range
{2, 3, ...
10}. Before we move any further we must mention that we forced the refine-
ment to a minimum level of 4 for the cells that contained a vortex. Spontaneously the
method would run with no refinement or only two levels where the vortex interactions
would be calculated exactly. The experiment was constructed in such way so that
the induced velocities are calculated by the multipole expansions, and the upward
and downward pass and shifts can be tested for correctness. The computational domain was refined with the same criteria at every time step. Figure 4-14 shows several
stages of the vortices motion and the corresponding domain refinement. At every
time step the same criteria of minimum 4 levels and 1 particle per cell were used.
The initial positions of the vortices were chosen so that the period of one rotation is
unit. The strengths of the vortices were also 1. The maximum value of the error was
the maximum error logged within those two periods of motion. Similarly the average
was taken over two periods of time.
Figure 4-15 shows in logarithmic scale the average and maximum pointwise error as
a function of the expansion order. The plot shows that up to order of 7 the log-plot
90
--
Frme 001
- --- I'.-,---
-
-
--
.0-40 t
-
-
-
Frme 001 115 Jan 2001 1Adopdive Mesh
15 Jan 2001 j Adaptie Mesh
0.2
0.2-
0.1
0.1
__0
0
-0.1
-0.1
-0.2
-0.2
,,I1,I
Frame 001
-Z-
-
;- q
I
I
-0.2
-0.1
I5 Jan 2001
,
0
x
0.1
0.2
Adaptve Mesh
FRame
001
0.2-
0.1
0.1
0
0
-0.1
-0.1
-0.2-
-0.2
-0.1
0
x
-0.1
0
0.1
0.2
x
0.2
-0.2
,
-0.2
0.1
0.2
15Jan 2001
-0.2
|
Adaptive Mesh
-0.1
0
x
0.1
0.2
Figure 4-14: Mesh refinement of 4 levels at different stages of the vortices motion.
91
Statistics over two rotations.
-2(
e
-- max
mean
-3-
-4-
0-
-0
0409
-8
2
3
-
4
5
6
Expansion Order
7
8
-0----
9
10
Figure 4-15: Pointwise error of the MFM as a function of the expansion order.
is almost linear, corresponding to exponential convergence of the error. After order 7
there is a slow down and from 8 to 10 it is practically flat. This is attributed to the
fact that the coefficients of the expansions 4.27, involve the difference of the vortex
location to the center of the cell raised to the power corresponding to that coefficient.
In our case the level of refinements is 4 and the total domain stretches for 0.5 units.
This roughly speaking gives a smaller cell size of 0.03125. The distance of the vortex
to the center will be less or equal to 0.03125/V,2 ~ 0.022. Raising this to the 8 power
is giving a number 0(10-14). This serves as an upper bound of the 8th coefficient
as the distance of the vortex to the center may be smaller. This number is already
very close to machine precision. The chapter of conditioning of raising powers is a
classic in numerical analysis and that's why the Horner scheme is used for polynomial
expansions.
On the second set of numerical experiments the order of expansion was kept
92
Frame 001 1 S Jon 2001
>
Mesh
0.2
0.1
0.1
0
0
-0.1
-0.1
-0.2-
-0.2
001
15
Jon 2001
-0.1
0.1
0
0.2
Frame 001
1 Adepofe Mesh
0.2
0.2
0.1
0.1
0
Mesh
-0.1
0
x
0.1
0.2
15 Jan 2001 Adapllv Mesh
>0
-0.1
-0.2
Ii
-0.2
-0.1
J
0
x
I..LJ...LL
0.1
L
,
I
-0.2
0.2
001 115 Jan 2001 I Adapdive Mesh
Fram
001
0.2-
0.2
0.1
0.1
0
>-
i15 Jan 2001
-0.1
I Adapive
0
x
0.1
0
0.1
0.2
Mesh
0
-0.1
-0.1
-0.2
1 Adaptie
-
-0.2
115 Jen 2001
-0.2
x
-0.1
Fram.
001
Framn
0.2-
-0.2
Frame
IAdbshpV
F.
-0.2
-0.2
-0.1
0
x
0.1
-0.2
0.2
-0.1
0.2
x
Figure 4-16: Data structure of different level of maximum refinements corresponding
to the same time.
93
x
Statistics over two rotations.
10-5
%I
A
max
A
A
V
~-mean
4
3
I-
2
-
1
--
-
-
- -9-
1
3
-
--- -
-
4
5
---
-
6
7
8
6
7
8
Refinement Level
4)2
E0~
oU-2
0
cc
-4
0)0
1
2
3
4
5
Refinement Level
Figure 4-17: Pointwise error over two periods and CPU time per time step as a
function of the refinement levels used.
94
constant and equal to 5. The size of the computational domain was also kept constant
and the initial positioning of the vortices was the same as in the previous set.
In this set we progressively changed the level of refinements.
Once again we
emphasize that the only reason to do this in a case of two sole vortices is to gain insight
on how the various parameters effect the accuracy and efficiency of the method. A
pictorial representation of this set of experiments is shown in 4-16. The levels of
refinement varied in the range {2, 3, 4, 5, 6, 7}.
Figure 4-17 shows the maximum and average error as defined previously as well as
the time as a function of the levels of refinement.
Note that here the error axis
is linear and not logarithmic, while the CPU time is plotted on a logarithmic axis.
The first plot convinces us that there is no loss of accuracy as one traverses the list
up and down. All levels apart from the second give identical results. The reason
that with two levels we get zero error is because with only two subdivisions the cells
containing each vortex are neighbors to each other so the interaction between the
vortices is calculated directly as explained previously. We can also see a rapid increase
in computational time as one increases the levels of refinement. This is a testimony
to our earlier statement that the way we control the mesh construction plays key role
on the overall performance of the algorithm. Here the situation is artificial because
we forced those refinements as they are not necessary. However when we are dealing
with a general flow with a big number of vortices the performance of the method
will depend on the distribution of vortices.
So the rules, or input parameters, by
which we create the tree will play an important role in the overall performance of the
simulation. Some upper bound has to be placed on the depth of the tree in order to
retain the efficiency benefits of the method. Some of those issues could be resolved
with a proper combination of this method with a vortex redistribution scheme for
practical problems.
95
Two physical vortices resolved by several vortex blobs
Streamlines showing the evolution of the field for one period are shown on figures
4-18, 4-19, and 4-20. For the pictures shown each vortex was resolved by 500 vortex
blobs. The vortices throughout the tests of this section have equal strength F = 1,
and were positioned so that the rotation period is T = 1. To create a non-singular
initial conditions we placed the N vortex blobs that represent each vortex at the
nominal point and then let them diffuse for t=1 using the random walk method that
we described earlier. The diffusion was only used to obtain smooth initial conditions
and then it was turned off. All the numerical experiments in this section include pure
convection and no diffusion. Figure 4-21 shows the particle positions at the end of
one period of rotation for number of particles per vortex taking values in the set {50,
100, 250, 500, 750, 1000}.
On the first set of numerical experiments the maximum level of refinements and
the number of particles representing the physical vortices were kept constant but the
order of the expansions was changed. The results are shown in figure 4-22 The conclusions drawn from the figure are similar to the once drawn in the corresponding set
of the previous experiment. Looking at the logarithmic axis of the error we can see
that there is fast convergence up to expansions of order 7, with a small reduction in
the convergence slope after that. The second figure shows that the execution time
per time step is almost constant. This is due to the fact that the refinement levels
were kept constant. We should mention here that for 2 physical vortices represented
by 10 blobs each, a direct Biot-Savart law would work much faster, but in practical
simulations where there is a big accumulation of vortices, like for example on the
wake of a body, the use of MFMP is clearly advantageous.
On the second set of runs the number of particles representing each of the two vortices was varied. The values were drawn from the set: {50, 100, 250, 500, 750,1000, 1500}
Note that those numbers correspond to the number of vortex blobs per physical vortex and that the total number of vortices in the flow is double. The order of the
96
...
.............
0.4
0.3
0.20.
__
2 --0.
-0.2
I
-0.2
x
..........
0
0.1
-0.1
0.2
0.3
0.1
0.2
0.3
0.1
0.2
x
0.4
0.3
0.1
0.2
.0.1
0
-0.1
-0.1
-0.2
-0.2
''I
-0.2
U
x
I
-0.1
0
x
0.41-
0.2
0.3
I
0.1
>-
0.2
-0.1
0
0
-0.1
-0.1
-0.2
;
-0.2
-0.1
0
x
0.1
; ; ; ;
-0.2
0.2
-0.1
i
.. .
x
.
.
-0.2
0.3
Figure 4-18: Snapshots of vorticity contours of the evolution of two rotating vortices
each represented by 500 vortex blobs and the corresponding MFM tree.
97
0.2
0.1
0
'
-0.1
-0.2
0.2
-V.4
-W. I
-02
-0.1
x
U. I
V.4
0.1
0.2
0.1
0.2
0.2-
0.1
0.
0
-0.1
-0.
-0.2
-0.2-
x
>-
U. I
U.ce
0
x
0.2
0 .2-
0.1
0
0
0-
-0.
-0.2
-0.2
-
-0.1
0.2
U
X
-0.1
0
x
Figure 4-19: Snapshots of vorticity contours of the evolution of two rotating vortices
each represented by 500 vortex blobs and the corresponding MFM tree.
98
0.2
0 .2-
0.1
0
0
-0.
-0.2
-0. 2
-
-0.1
ei i
-0.2
-0.1
-0.2
-0.1
, ,
,
h. 1 .
x
0
0.1
0.2
0
0.1
0.2
0.1
0.2
x
0.2
0.1
0.1
-0.1
-0.1
-0.2
-0.2
U
x
x
0.2
0.2
0.1
0.1
-0.1
-0.1
-0.2
-0.2
-0.2
-0.1
0
x
Figure 4-20: Snapshots of vorticity contours of the evolution of two rotating vortices
each represented by 500 vortex blobs and the corresponding MFM tree.
99
-4- MFMP
25
-
E) exact
,/
-
20
a)
E
15-
JD7
100
-
10
5
0
500
1000
1500
Number of particles
2000
2
2500
3000
-0- MFMP, slope=1.2868
e Direct, slope=2.0547
1.8 P
1.6
1.4-
E
1.20
S)0.8
-j0.61
0.4 P
0.2
0
0
0.5
1
2
1.5
2.5
3
3.5
Log(Number of particles)
Figure 4-21: Average execution time per time step as a function of the number of
particles in real and logarithmic axes for MFMP and direct calculation.
100
2 Vortices represented by 10 blobs each
-2
e
-
-3
L
-4
0
o0-6
-7
-8
*-0--
3
3.5
4
4.5
5
5.5
6
6.5
7
7.5
I
j
I
I
nN
8
Expansion Order
I
I
I
I
0.4
0.35 F
a
0.3g
>
0
E
0.25
0.20.15F
-
0.1
0.050
L
3
I
3.5
4
I
I
I
I
I
I
I
4.5
5
5.5
6
6.5
7
7.5
8
Expansion Order
Figure 4-22: Pointwise error and average execution time per time step over two periods
and CPU time per time step as a function of the expansion order for the case of two
vortices each represented by 10 vortex blobs.
101
Frane 001 1 18 Jn 2001 I 50 Vortex Blobs / Vaftx
FrOM
001 I 18 JAn2001 I 100 vaemrbloba /varlax
02
0.2
0.1
0.1
1+
-0.1
-0.1
-02
-02
I
-02
-0.1
. .I .
1
x
1iJsn
2001
I 500
vartmxbtabe orex
0.1
. II
02
Frune 001 1 18Jen 2001 1 250 vortex blabe/ vrtex
Frame 001
0.2
0.
0.1
-0.1
-0.1
-0.2
-0.2
I
Frene 001
0
x
0.1
0.2
-0.2
0.3
11 Jon 2001 I 750 vortex blobs Ivolrex
Frne 001
0.1
0
-0.1
-0.1
-0.2
-0.2
0
x
0.1
0.2
0.2
0.3
.
I
-0.1
,
,
.
i
0
0.1
0.2
I 18 Jn 2001 I 1000voltx blobs/vortex
0 .2
-0.1
0.1
x
0.2
-0.2
.1.1 ...
- 1-
G
,....i.
-0.1
1
x
0. 2
-0.2
-0.1
-0.2
0.3
.
I,
0.3
I..i.,..
...
-0.2
-0.1
0
i ,..,i
x
0.1
0.2
0.3
Figure 4-23: Particle positions at the end of 1 period of rotation for different number
of particles.
102
expansions was kept constant and equal to 7. The level of tree refinements was also
kept constant and equal to 4. Figure 4-21 shows the mean execution time per time
step over a period of simulation. In the legend of the logarithmic plot the slope of the
logarithmic line shows agreement with the theory. The slopes were obtained by least
squares linear approximation. The first portion of the curve that is flat was excluded.
For those cases were the number of vortices was smaller that 200 the execution was
very fast and the times were very closed to each other. The reason for that is other
delay factors in the implementation.
The MFMP is clearly slower for those early
stages as the dominant factor of delay is the construction of the refined tree at every
time step.
On the third set the order and the number of particles where kept constant, but
the number of maximum levels of refinement was changed.
103
Chapter 5
Vorticity Redistribution
The reasons for vorticity redistribution are both at the level of theory and formulation as well as at the level of implementation and programming. A basic consistency
requirement of vortex methods is that particles should overlap at all times. Computations involving non-overlapping finite core particles should be regarded as modeling
and not as direct numerical simulations. The loss of overlap is an inherent problem
in the purely Lagrangian methods. The particles tend to cluster in some areas and
spread in other areas. As we saw before the PSE method for the solution of the
diffusion equation also has as requirement significant overlap between particles. At
the level of implementation, the need of some kind of redistribution or substitution
among vortices arises from the fact that the satisfaction of the body-boundary condition in many schemes is accompanied by the generation of new vortices. This has as
consequence as the simulation evolves in time more and more vortices to be generated
and shed increasing the memory that the program is using as well as the complexity and CPU time for every time step. We will discuss several different methods of
redistributing vorticity. Note here that the methods being discussed are not all alternative to each other. Some of the methods are used for different reason or combined
with different schemes than others. The reason we included all at the same chapter
because they all fall under the general description of redistribution as we have a set of
particles and based on this after this procedure we get a new set of vortices without
this constituting any fractional step of the solution of the Vorticity Equation. They
104
are rather numerical tricks introduced either to satisfy consistency requirement of the
discrete scheme or just to speed up the execution of the vortex method program.
5.1
Merging and Splitting of Point Vortices
One may wonder why would we want to split a particle in the context of vortex
methods. A simple answer comes by reminding the method of core expansion for
simulation of diffusion. In this method we allowed the vortex particle radius to grow
by -'2 v At. We have also seen that the accuracy of vortex methods depends on the
core size. Specifically we saw that for particles with Gaussian vorticity distribution the
convective error scales as O(U 2 ). The splitting of a particle in more than one particles
can be viewed as a localized remeshing. A difficulty arising from the method is the
increase in computational elements which also increases the computational cost. This
difficulty is alleviated by including in the algorithm a merging scheme which locally
merges several particles close to each other into one.
5.1.1
Splitting Scheme
The splitting scheme is formulated by replacing a single particle with an axisymmetric distribution of new particles. The distribution is chosen to be axisymmetric in
compliance with theory and nature of vortex particle in unbounded diffusion. The
M new particles have core size a and are placed at the circumference of a circle with
center that of the original particle. A particle prior to the splitting step is going to
be referred to as parent and the particles resulting from the split will be referred to
as child particles. For the child particles, the strength, the radius, and the position
have to be determined. Those is two dimensions are four variables for every new particle. We have already set the physical requirement of axisymmetry and decided to
distribute the particles on the circumference of a circle in uniform angular distances.
To maintain symmetry with this arrangement the circulation of the parent vortex has
105
E-e2,
to be equally distributed among the child vortices.
i
(5.1)
This keeps the circulation in the flow invariant which is an important mathematical
and physical requirement.
This can equivalently be expressed as zeroth moment
conservation. The position of the center of the new vortices axisymmetrically and
with equal strengths and radii conserves the first moment as well. The new core size
is chosen in such way as to provide the desired resolution but also maintain some
overlap over the newly created particles. The radius of the circle over which the new
particles are to be distributed is utilized to implement one more constraint. This
constraint has traditionally been the conservation of the second moment of vorticity.
For Gaussian particles this can be written as
F (I - 1+2T2 )
i (
+iI2H+2i2)
(5.2)
i=1
Solving 5.2 for r we get:
r=
2(o2
-
d3 2 )
(5.3)
An alternative constraint that can be imposed instead of the second moment of
vorticity, is the conservation of the vorticity value at the parent particle's center. This
constraint, referred to as the vorticity constraint, can be expressed as:
F
f
M
r2
2
(5.4)
solving 5.4 for the radius r we get:
r = 2d
ln(g)
(5.5)
Since the goal of splitting is to reproduce the vorticity field as accurately as possible the last constraint can be replaced with any physically relevant one.
106
5.1.2
Merging Scheme
Before we proceed in describing the merging algorithm we should distinguish between
numerical merging and physical merging. Numerical merging is replacement of several
basis functions with a single basis function. Physical merging refers to the true vorticity dynamics when nearby patches of vorticity combine into a single element. Some
other schemes deal with modeling the physical merging. In the present paragraph we
will describe a method of numerical merging. We begin with the assumption that for
a given simulation the core size is bounded from below and above:
1
m
1
m
5 -i < 1 A.
corresponds to a maximum resolution . For a fixed problem size, the lack of a
lower bound would be problematic as the basis functions or particles would cease to
overlap. The upper bound IM guarantees a minimum resolution. Let us assume that
the total number of particles in the flow is N. A subset (Fj Yj oj) of n elements will
be merged into a single element. The set of elements to be merged have all the same
sign of vorticity. The merging scheme is designed to conserve zeroth, first and second
moments of vorticity. This effectively defines the numerical process because these
constraints determine the strength, position and width of the newly created element.
n
$ F(5.6)
=
j=1
X =
4
&2
(4
j()
n, p
+F
+ff-
2
)
(5.7)
(5.8)
j=1
The error measure of the merging process is defined as the difference in the vorticity field before and after the merging event:
)0)
2
47r&2
[
%44
-- -e-
-_
(5.9)
O'
Note that equation 5.8 constrains the merged blob width but does not play a
key role in the error bound as the others do. Therefore, it is possible to use other
conservation laws in place of the second moment. Formulas 5.6 to 5.8 don't say
107
anything on how we choose the subset of m vortices to be merged. The objective is to
keep the error defined in 5.9 below a specified tolerance without altering lm and 6M.
Controlling e() ensures that the computational field will only experience tolerably
small disturbances. Maintaining 1m < j < IM is necessary to maintain accuracy in
the evolution of the computational field relative to the exact solution. We will give
two useful theorems without proof. The proofs were provided by Rossi [1997].
From there on we non-dimensionalize the space variables dividing over 2 & i.e.
X= 2-
(5.10)
THEOREM 5.1 (Merger Error Bound) Suppose n computationalelements merge
into a single element with strength, position, and width defined by equations 5.6, 5.7
and 5.8. Furthermore, assume that all strengths have the same sign and that:
I #i - X I< R
b1 <
--
(5.11)
< b2
(5.12)
for each computational element. Then the uniform-induced field error satisfies the
inequality:
-e(
4 7r
(5.13)
~2M
-
Ie
with,
e
-
U
0'i
(5.14)
/
M = max e-91<i<n
THEOREM 5.2 (Explicit Determination of Merger Error Bound) If
zi - X
< R
(5.15)
and
bi <
108
< b2
(5.16)
Table 5.1: Extreme values of equation 5.17 for use with merging algorithm
/3
a
10-3
10-3
1.0
1.0+1.0x10-
10-1
1.0-1.x10-
Xmin
-fmin
-1.41371
-2.2781
4.289 x 103.927x10-
4
3
-2.4587
1.116x10-
10-3
10-3
1.0+1.Ox10-2
10-2
1.0+1.0 x10-
3
2
1.0-1.0 x10-
3
3
10-2
1.0-1.0x10-
10-2
10-2
10-1
10-1
1.0+1.0 x10- 2
1.0-1.0 x10- 2
1.0+1.0 x10- 2
1.0-1.Ox10- 2
1.0+1.0 x10- 1
1.0-1.0 x10-
10-1
10-1
Xmax
fmax
4
1.41471
0.4600
4.289 x 10 4
1.112x10- 3
3
2.2808
3.923x10-4
-2..7478
-2.7637
1.155x 10-3
1.001x 10-2
1.001x10-
2
0.0507
0.0492
-1.5547
4.035 x10-
3
1.2679
3
1.5657
1.551x104.645 x104.029x10-
0.4661
1.112x10-2
2.2931
1.3116
1.6153
3.902 x10- 3
4.672 x10- 2
3.998 x10-2
1.133 x 10- 1
3.681 x 10-2
-1.1583
-2.2659
-0.4526
-1.5054
-1.2156
-2.1474
-0.3928
4.638x103.948 x10- 3
1.111 x10- 2
4.062 x10- 2
4.608 x10- 2
4.148 x10- 2
1.100 x10- 1
0.5281
2.4193
3
3
3
then the extreme values of the uniform merger error function
2
f (x)
=e-| -X
-2
2
Ui
!-41
e
I
(5.17)
are achieved with proper parametervalues either (R, b 1 ) or (R, b 2 ).
Furthermore, this absolute maximum is attained when X is collinear with the origin
and xi.
In practical terms the above two theorems tell us that any number of same signed
computational elements can be combined together, provided that they have sufficiently similar core widths and are in close proximity to each other relative to their
core sizes. It is practical to tabulate the extreme values of 5.17 to enable faster access
to them in a program.
In the above table
We have denoted
xmin
=
and
and a =I si -21.
xmax
the distances from 2 and towards Yi where the
function 5.17 has a minimum or a maximum respectively.
109
The analysis above gives the error given that the subset of vortices to be merged has
already been selected. A full implementation of the method would require a grouping
of vortices that are applicable for merging. If one knows the grouping C it is possible
to determine the post-merger element ((17), Y, &) and therefore the merger error. If
the error is less than the specified tolerance then we replace all the elements of C with
(F,
, &).
For the merging to take place all the following conditions must hold:
1.
< R
(5.18)
-
4&2
2.
b, <
&2
< b2
(.9
3.
47r&2
(5.20)
-
FM<
To construct a candidate set one should recompute equations 5.6, 5.7 and 5.8 for
every particle and then check if the conditions for the merging are satisfied. This is
computationally intense job and would slow down the overall algorithm considerably
considering that the procedure of determining candidate sets for merging is repeated
one element at a time, and that the whole process has to be repeated periodically in
time as the positions of the particles change with time. To speed up the algorithm
a more restrictive set of conditions is imposed. This set of conditions guarantees the
satisfaction of the original set of conditions and involves less operations. The new
conditions are the following:
1.
i - sYj < R Vi, j E C
(5.21)
2.
S < E
110
4 7r12
'
(5.22)
With this assumption 5.21 and 5.22 imply 5.18 and 5.20. The advantage to using
5.21 and 5.22 is that one need not compute &as each candidate set, C, is constructed.
Determining & is relatively expensive because adding a new element to C will cause
the center of vorticity to shift, requiring a re-evaluation of the entire sum in equation
5.8. However, determining f after adding a new element to C only requires an addition
operation. Note that the modified equations have to be complimented by 5.19. Let
us now outline step by step the merging algorithm.
1. The error tolerance c and therefore M is specified. From M and using table 5.1.2
.
one can determine R, b 1 and b 2
2. Loop on i from 1 to N.
3. Set C = {(Fi, Yi, o-)
4. Loop on j from i to N to compute dij = Yi - z' for every j.
5. Element j is added to C if the following conditions hold.
(a) i <
j.
This will ensure that element i will participate in a maximum of
one merging event.
(b) FI -Fj > 0 ,i.e. they have the same sign.
(c) Adding element j to C will not cause the total strength in C to exceed
4 7r
12
M'
(d) I dij
12 <
Rl
6. End loop over j.
7. If IC J> 1, compute (f, ,&). If & < Im and condition 5.19 is satisfied for each
element in C, replace element i with post-merger element and remove all other
elements in C from the simulation.
8. End loop over i.
111
Note that the algorithm is index dependent. A lower-indexed element has a greater
chance of joining a candidate set than a higher-indexed element because f grows
as C is constructed.
Although uniform field errors don't accumulate spatially, it
will accumulate in time. That is why in the vortex method code merging action is
taking place periodically every several time steps. If the domain has solid boundaries,
the accurate resolution of the near-boundary vorticity is necessary as it controls the
further vorticity generation and the loads on the body that are usually of importance.
In this case it is advisable not to implement merging on the vortices that are within
some specified distance from the boundary. The choice of R, b 1 and b 2 also affect the
performance.
5.2
Beale's Redistribution Method
Let us assume we have a vorticity field represented by a set of particles at positions
xi, carrying values wi, and we want to represent it by a set of particles at positions
xj. The idea is to compute the new circulations 'Yj such that:
wi
=Yjn
(i
(5.23)
Let us denote by ai the areas of the particles and by O3 = ai wi their circulations.
Let us also introduce the matrix notation [Aij] = [ai1.E('i - 7j)], A is a sparse N x N
matrix, if N is the number of particles.
Equation 5.23 can be written in discrete form as:
[A] - [y] = [/]
(5.24)
Looking at the above system of equations one can easily realize that to solve this
by direct inversion for a big number of particles N can be very costly in terms of
computer time. Therefore one has to resort to iterative methods. Beale's iterative
procedure is based on the observation that the circulations /i are natural guesses for
7j, in other words A ~ I, where [I] denotes the identity matrix. We can thus rewrite
112
5.24 as:
([A] - [I]) - [y] + [y]
=
[3]
(5.25)
The iterative procedure can be written as:
77+a=3i+ -Zajy.
G(i -7j)
(5.26)
Analysis on Beale's redistribution technique shows that the iterations affect the
particle discretization and regularization.
If the original cut-off is of order r the error estimate after m iterations is proven to
be of O(").
The convergence of the iterations 5.26 can also be studied using Fourier analysis.
Let's assume for simplicity that the particles lie on a one-dimensional uniform grid
of size h. Let us also denote by [i] and [3] the discrete Fourier transforms of -Y and
#.
Then in Fourier space equation 5.24 can be written as:
h[,] [I] = [,]
(5.27)
The iterative scheme can be rewritten in the Fourier space as:
,n+1
=
(I - h ,E)
-+7^l
(5.28)
From the above recursive formula, identifying a sum of a geometric series with some
extra term we can deduct:
" =
1
h &n
h- wt
For n -+ oc we get 5.27.
113
(5.29)
5.3
Interpolation Kernels
We may distinguish between two kinds of interpolation formulae. The first is the
collocation type where f(z,) = F(%j).
The second is the smoothing type where
r(Xj) # F(7'). Assume3h for the new grid a uniform spacing h. Let us set u =
Interpolation kernels of the collocation type are:
Linear Interpolation:
A,(u)=
if u E [0 , 1]
1-u
0
(5.30)
, otherwise
Second Order Interpolation:
2
1 - u
A2(U) =
, if u E [0 , 1/2)
(1-u)(2-u)
2
0
if u C [1/2, 3/2)
(5.31)
, otherwise
Third Order Interpolation:
if U E [0 , 1)
2
A3(U) =
(1-u)(2-u)(3-u)
6
,if u E [1 , 2)
0
, otherwise
(5.32)
Such kernels can be systematically constructed to ensure conservation of as many
moments of the vorticity field as possible. Note that those kernels do not have continuous derivatives and that second or higher order kernels are not even continuous.
This implies that when interpolating quantities having large fluctuations for small
particle separation they might introduce large interpolation errors from small errors
in the actual particle locations.
The second type of interpolation attempts to minimize such effects. An example
of smoothing interpolation kernels are the central B-splines, M,. The formulae for
114
the first four members of this family are given by:
M(u) =
1
if u E [0 , 1/2]
0
, otherwise
1-u
,if u E [0 , 1]
0
, otherwise
(5.34)
(3/4-u')(2-u)
M4(U) =
,
2
M3(U) =
(5.33)
if u E [0 , 1/2]
(3/2 u)2
f u E [1/2 , 3/2]
0
otherwise
2/3 - u 2 + 1/2
if u E [0 ,1]
(2-_U3)
6
,if u E [1, 2]
0
, otherwise
(5.35)
(5.36)
Equation 5.33 is known as the nearest point interpolation (NGP). Equation 5.34
is the linear interpolation and is often the choice in VIC (Vortex in Cell) algorithms.
The first function of this family to have a continuous first derivative is 5.35 and is
usually referred to as the Triangular Shaped Cloud (TSC) function. As we increase
the order of the interpolation scheme larger areas contribute to it.
The analysis of those schemes is done in the Fourier space. For simplicity and
without loss of generality we will continue the Fourier analysis in one-dimensional
space. Let us assume a particle of strength 1 o with core radius - at position xO and
having a core function r7
. We will analyze the replacement of this particle with
M particles of strengths Fj, locations xj, and core sizes a. The requirement is that the
difference in the vorticity approximation at a location x between the two alternative
115
(i +i o2, +(,) ~o
discretizations is minimal.
w(x)= for
a
Zj
(
xi
(5.37)
It is practically impossible to satisfy the above equation for the unknown values
]F for all locations x. What we do is that we try to:
1. Conserve as many moments Ta = f w(x)xa dx as possible (a = 0, 1, 2, ...).
2. Minimize the error at distance larger than the mesh size.
Taking the Fourier transform of equation 5.37 we have:
)
.FT{w(x)} = Foe-'zk0OTr
() M
}
F
(5.38)
j=1
or equivalently we ask that the new particles have to satisfy the following equation:
M
Z
j=1
Defining
i ei k (xo-xj) , F0
(5.39)
o,j = x, -xi, and expanding the left side for small values of T, 3 = k Ao,j.
The expansion is allowed since the smoothing kernels decrease exponentially with k
we obtain:
(5.40)
i
j=1
Note that the above equations are independent of the core function rj and the
core size o-. We can systematically construct the interpolation kernels that satisfy the
equation up to M terms by employing more and more mesh points.
An extensive survey of the Fourier space analysis of these schemes can be found
in the book of Hockney and Eastwood.
116
Chapter 6
Boundary Conditions and Vorticity
Generation
6.1
Boundary Element Methods
As we saw in previous chapter the velocity field can be decomposed on a rotational
and an irrotational component:
V
=
v + V0
(6.1)
We saw how we can calculate the component v7' from the vorticity field by convolution:
) x W
..
dx'
.
(*) 27r
(6.2)
The free stream velocity can be represented as the gradient of a know potential:
<bo = VO(x cos a + y sin a)
(6.3)
where V, is the magnitude of the free stream velocity and a is the angle formed by
the free stream velocity and the x-axis of the coordinate system.
The presence of a body in the flow is incorporated by including a velocity potential
VV
+V40 o + V(B
117
(6.4)
I2
The potential <bB can be defined as the solution to the following problem:
V 2<DB =0
(6.5)
subject to the following no flux boundary condition:
an
an
27r
IfPw
' -D
)] - )xd
V, V ESB
(6-6)
1
where n is the normal vector on the surface of the body.
The potential from 6.5 and using Green's identity can be expressed in the form:
(PB(
)-C
J nx-'
ns
s
dx+ C
4),
(Xd
X'
n
67
where
C=
(6.8)
2
X- E S
The above equation constitutes the representation theorem for the potential. The
quantities In I Y -
1 I and a(1nhian 1) are fundamental solutions of the Two-Dimensional
Laplace equation and play the role of Green's functions in the representation of the
velocity potential. The first one of them is the two dimensional source and the second
is the two dimensional doublet. We can thus identify the term
strength and the term
1B(x')
4
B(P)
as the source
as the doublet strength, i.e.
K =
n
On
p =B(X)
We can know rewrite equation 6.7 :
118
(6.9)
(6.10)
B(sn
On
8,a( In I -- P I)
--
s
Thus the potential at any point sF can be written in terms of a source and a doublet distribution at the body surface. Equation 6.11 automatically satisfies equation
6.5 and approaches zero at infinity regardless of the nature of r and p. These are
adjusted to satisfy the condition of zero normal velocity over the body surface.
Taking the gradient of equation 6.7 we obtain the representation theorem for the
velocity:
X)vxix
=
s
dx'+CJB (X)
dx'
an
san
(6.12)
Using 6.10 we can rewrite 6.12 as:
X
=-
5-
~x-)
I r,(-)d-+nJ
Js
s
dx1 (6.13)
an
In the above equations, Vi emphasizes the fact that the derivatives in the gradient
are taken to the location of Y and not the integrating variable x'. Also recall that the
gradient operator satisfies Vy = -V,. The second term that corresponds to a doublet
distribution over the body surface can also be substituted by an equivalent surface
vorticity distribution. Clearly there is an extra 'degree of freedom' in this problem
and either K or 1 or a relation between them may be prescribed arbitrarily. Note also
that in the context of panel methods the surface integral can also include the wake
and some extra conditions like the Kutta condition. However in our methodology
where the wake is included in the term 0", the surface integration above only involves
the body surface.
119
6.1.1
The Source Panel Method
Eliminating the redundancy of equation 6.13 we can only consider the first integral.
Geometric discretization involves the approximation of the closed boundary with a
polygon of N straight segments or panels. For each of those panels we can assume
a particular source distribution using shape functions. This distribution defines the
order of the method. If for example linear source distribution is used then we are
talking about first order method. If the source distributions is taken parabolic over
each panel then we are talking about second order and likewise. More complicated
shape functions can also be used like B-Splines.
In our implementation we used zeroth order distribution. The source distribution
over each panel was taken constant and this is equivalent to taking the average of the
source distribution over the length of the panel, i.e.
-
f
fs P=,(s)
2
ds
(6.14)
Then from equations 6.6 and 6.13 we get the problem with Neumann boundary
conditions in discrete form.
N
f
C E
Kj(s)V(ln rij)
j=1 Sj
ds =
The above equation is applied for i,
j
=
D
-i
- (V x IF) - ni
(6.15)
1,... , N , where N here is the number
of panels.
Also rij =- Xi - Xj
Equation 6.15 is satisfied on a finite number of N points called control points and are
usually located at the middle of each panel.
This is giving a dense N x N system for the N unknown source distribution
strengths rj.
[A] - [k] = [b]
120
(6.16)
11
11
_
___
-
- I
& __ __
- ___
La - Min
Control point (x, y
PaneP
2
PPannl
1
Panel I
Figure 6-1: Representation of non-lifting body with source panels.
where [A], is the dense influence coefficient matrix, and [b] is the known right hand
side vector, given as the total normal velocity induced by all vortices and free stream.
For rigid body that the geometry is not changing with time the influence coefficient
matrix can be formed and inverted only once before the time looping. The right hand
side on the other hand will change with time, even for steady free stream, because
the vortices are convected with the local induced velocities and change their locations
and consequently the velocities that they induce to the control points. The integral
of the source distribution over the body surface should be equal to zero, otherwise
we would not have conservation of mass. Thus one way to check our results and the
accuracy of the method is to check the error:
f=
6.1.2
f
(s) ds
(6.17)
No Slip Boundary Condition Incorporated
The above boundary integral representation superimposes to the existing velocity field
a potential flow field such that there is no flux through the boundary of the body.
This is an inviscid approach and doesn't account for viscous effects on the boundary.
From Helmholtz theorem we know that vorticity cannot be generated inside a homogeneous fluid but only at its boundaries or if non-conservative volume forces act on it.
121
In the problem of a body submerged in a fluid flow the vorticity is generated at the
body boundary. The presence of viscosity raises an extra boundary condition, that
of no slip on the boundary surface. Within a thin layer the horizontal velocity of the
fluid rises from zero that it was on the wall to a value specified by the macroscopic
characteristics of the flow. Thus within the boundary layer there is shear a and
thus vorticity. In the case of a bluff body this vorticity will be shed into the flow by
separation mechanisms caused mainly by adverse pressure gradient. In a streamlined
body in relatively small angle of attack the vorticity is shed mainly from the trailing
edge.
Panel methods customarily shed the wake from particular separation points. Usually
some Kutta condition or equivalent is satisfied at those points. There are different
equivalent statements for the Kutta condition but it basically ensures smooth shedding of a wake from the separation points. The most general statement of Kutta
condition although a non-linear one is that the pressure should be equal on the two
sides of the separation point. In vortex methods vorticity is generated all over the
boundary surface and it is left on the solution to decide where the vorticity will separate.
To determine how much vorticity is generated on each panel we satisfy the no slip
condition at every one of the control points. Thus the source method above is complemented by N more equations and N unknowns. The extra unknowns represent N
vortex sheets distributed one at each panel. Now we have a 2N x 2N system of linear
equations.
[Ann]
[ [AKt]
In the above 2 N
x
[A"-]
[r ]
[A-,] j
1] J
[-TOTn
Ir"I
L [-V'TOT
18
I- '(6.18)
j
2 N system of linear equations the block matrices can be
expanded as:
A" = C
V (In rij)ni dsj
A J= C
fj V(ln ri)iI dsj
122
(6.19)
A7
= C
A7 = C
V
x Inrij ni dsj
V x Inrjj tj dsj
As we saw earlier for the self induced normal velocities of a source panel to the
upper side of the control point is 0.5. Thus the diagonal entries of the block matrix
[AK] are:
A" = 0.5
(6.20)
We can also prove than the self induced tangential velocities of a vortex panel to the
upper side of the control point are 0.5. We can then write for the diagonal entries of
the block matrix [At] :
A7 = 0.5
(6.21)
With the above consideration we can schematically see the structure of the influence
coefficients matrix A:
0.5
A
0=
0.0
0.0
0.0
0.5
0.5
0.0
0.5
The off-diagonal entries are usually non zero, but considerably smaller than 0.5 as
with increased distance from the control point the influences weaken.
123
6.1.3
Martensen's Method
Consider a surface S bounding an area V, which represents a body whose velocity is
given by ?7,. Consider also the body as a region of fluid. The stream-function inside
the body is:
1
2
(6.22)
Taking the rot of equation 6.22 yields for the velocity inside the body:
V
=
V
x
(6.23)
I = Un + V x
The statement we want to prove is that if the no-slip condition is satisfied, then
the no-flux condition will also be satisfied. The no slip condition can be written:
(6.24)
V - t= V, - t
Considering Green's identity:
+
f[(V a) (Vb) + av 2 b] dV
ads
s a an
= 0
(6.25)
Since there is no vorticity in the body and assuming the body can be represented
by an irrotational flow,
=
=
_2
0
=
(6.26)
and using the boundary condition 6.24 we get:
(Vx ') -t
On
0
(6.27)
Substituting into Green's identity 6.25 with a = b = ' :
V
SVJi' 12
124
dV = 0
(6.28)
ba
Figure 6-2: Check for leakage flow with the Dirichlet boundary condition in
Martensen's method.
which thus implies that T' = 0.
We have proved that the vortex sheet is the only element necessary to satisfy both
boundary conditions.
There is also a second way to prove that once the no slip condition is satisfied the
no flux is also satisfied. Let us assume that there is some leakage velocity normal to
the body at a point a, figure 6-2. However if there are no sources or vortices present
inside the body contour the only possibility is that the streamline 7Po will cross the
body a second time at a point that we will call 3. If we now apply the circulation
theorem around the contour a07 just inside the surface vorticity sheet, we have:
fd
=
j
vn ds +
j
vSi ds = 0
(6.29)
Enforcing the no-slip boundary condition sets v,8 = 0. Thus the second term of the
125
above equation is zero and for the equation to hold the first one should be zero too.
vn ds = 0
(6.30)
Since Vn is unidirectional along the supposed streamline V)0 it Vn = 0 throughout.
The no-slip condition is thus totally adequate to satisfy no-flux given there are no
source or vortex distributions within the body profile.
The method can be extended in the case that the body has a rotational component. In this case we decompose the flow into two components. One irrotational and
one rotational. The rotational component can be represented with a known vortex
sheet. Then we can apply the above procedure on the irrotational component and
superpose the two solutions. It is very important to note the assumption of no vorticity inside the body mentioned during the proof. That implies that image vortices
that are commonly used in the vortex methods' community cannot be used with this
methodology. The primary advantage of this proof is that the number of unknown
singularities is reduced by a factor of two and the matrix that is inverted by a factor of four. Note also that during the convection step the velocities due to surface
singularities have to contribute to the vortices velocities too. Thus cutting down the
number of surface singularities causes a notable reduction in the execution time of
the program.
126
6.1.4
Numerical Results
The Hess-Smith method was compared with Martensen's method for a NACA0012
airfoil. NACA 0012 is symmetric and without camber meaning that at zero angle of
attack a
=
0 the flow should be symmetric and there should be no net circulation
and no lift around the foil.
The total flux is one measure of the error as it should be zero to ensure that the field
is divergence free regardless of what the flow conditions are.
For the case of zero angle of attack we use the lift coefficient and circulation as alternative measures of the error as we know they should be zero. For the cases of
non-zero angle of attack a : 0 the case of highest resolution was chosen as reference
for the error definition.
Note that to keep the problem simple and isolate the error calculation on the satisfaction of the potential boundary condition no vortices were shed. The assumption has
some validity for steady flow around an airfoil after the starting vortex is convected
sufficiently downstream from the airfoil. Another requirement for such approximation
to be valid is that the aifoil is at small angle of attack and all the vorticity created
on the boundary layer is shed to the flow from the trailing edge.
To allow the program to run in the case of non-symmetric airfoil or airfoil at angle
of attack, we added for this test code only a Kutta condition. The Kutta condition
has to be removed when we allow the particles to be generated over the surface of
the body and be released in the flow. The steady Kutta condition here requires the
velocities at the control points adjacent to the trailing edge to be the same. This form
of Kutta condition is only valid for the steady state case. Different forms of Kutta
condition are used for unsteady cases.
Note that in Martensen's method by adding the Kutta condition and together with
the no-slip condition one has N+1 equations to solve for N unknowns. This problem
is overdetermined and is solved with the method of least squares.
127
0.03 r
-
0.025
x
cn
2
mi~ h |
L
-
0
Marte ns |
Slope =-1.3311
Slope =-1.5939
-2
0.02
-4
0.015
-6
.0
0.01
-8
0.005
-10
0
-12'
'
O'
306
Number of Panels: N
100
200
400
2
3
4
5
6
p
0.1
2
-e- Hessmith
0.08
-
0
-0- Martens
Slope =-2.1718
Slope =-2.1715
-2 [
c
. 0.06
-4
0.044
-6
.5Q
-8
0.0214
0'
0
-10-M h
1-
300
200
100
Number of Panels: N
-
-12-
400
2
4
3
5
6
p
1
2r
-[- Hessmith
0
-- Martens
0.5[
-
Slope =NaN
Slope =NaN
-2
-4
0
-
0 qQ- 0-
a)
-
--6
-8
-0.5
-10
0
'
'
'
100
200
300
Number of Panels: N
-12
'
-1
400
0
0.5
1
p
Figure 6-3: Hess & Smith .vs. Martensen's method for a NACA 0012 airfoil at a = 00.
128
Slope =-2.0815
-
2
0.1 r
--
-e- Hessmith
-0- Martens |
0.087
0
-
Slope =-2.0815
Slope =-1.5939
-2
x
-
0.06
-4
.0
0.04
-6
-8
0.02
-10
A
0
100
200
M
300
-12
400
2
3
4
5
6
Number of Panels:
N
0.4
2
-0- Hessmith
- Martens
0.35
-4
0.3
-6[F
-8
0.25
Slope =-0.69144
-
G
Slope =-2.6132
Slope =-0.60429
-2 [
c
0
c')
-
0
-10
0.21
c
100
200
300
-12
400
2
3
4
5
6
Number of Panels: N
2
0.7 r
-0--- Hessmith
Martens
0.65
-- Slope =-0.69144
0
-* 0.6
Slope =-1.0281
-2[I
-4
0
-
0.5
-6
0.45
-8
0.4
-10
0.35
0
100
200
300
-12-
400
2
3
4
5
6
Number of Panels:
N
Figure 6-4: Hess & Smith .vs. Martensen's method for a NACA 0012 airfoil at a = 5'.
129
2
0.2
0. 15I
x
OD
0.1
0.05*
0
U
c
100
-e- Hessmith
-0- Martens
-
0
Slope =-3.3375
Slope =-1.5939
_2-4
-6
-8
-10
200
300
-12
400
2
3
4
5
6
Number of Panels: N
0. 7 5 r
2
-[- Hessmith]
-0- Martens
0.7
0
0.65
-2
0.6
-4
2 0.55
-6
c
0
-45
-
Slope =-2.6421
-
Slope =-0.88883
0.5
0.45
-10
0.4
0
100
200
300
-12'
400
2
3
4
5
6
Number of Panels:
N
2
1.4 r
-e- Hessmith
1.3
-
0I
-- Martens
1.2
-2
1.1
-4
1
-6
0.9
-8
0.8
-10
-
Slope =-1.0992
Slope =-1.0156
a)
a)
0
U.7
0
100
200
300
-12-
400
2
3
4
5
6
Number of Panels:
N
Figure 6-5: Hess & Smith .vs. Martensen's method for a NACA 0012 airfoil at
a = 10'.
130
The idea is to find the -yj to minimize the error:
2
N
N+1
E=
Ai(Z
yj - b)
(6.31)
(Aijyj - bi) Aik
(6.32)
We thus require:
N+1
aE2
=
0
=
E
This comes down to the determined problem:
N+1
N
E (AijAik) yj
j=1
=
Z Aikbi
(6.33)
i=1
or in matrix form:
[A]T . [A]) [-y] =[A]T
_ [b]
(6.34)
One could go further trying to improve the efficiency because the matrix multiplication involved in the above formulation is computationally intense. But this is
already beyond the purpose of this text as the Kutta condition was only employed
to test inviscid boundary condition method before using them in a general vortex
method code.
For the source panel method to be able to handle separation from the trailing edge
in angle of attacks different than zero or for an airfoil with camber the Hess and
Smith extension was used. The essense of this extension is the addition of circulation
which is uniformly distributed on the foil surface as a constant vorticity distribution.
This is adding another unknown to the equations to account for the extra equation
arising from the introduction of the Kutta condition. When this method is used in the
vortex method context the vorticity generated at each panel equals to the slip velocity. In this method unlike Martensen's method the slip velocity is different than the
distributed vorticity on the panel as if contains a component from the source influence.
Figures 6-3 6-4 6-5 show comparisons of the two methods and convergence rates
131
for a = 0, 5, 10 . The rates of convergence are shown on the logarithmic plots. A
linear best fit polynomial was drawn through the data points and the slope calculated
is shown on the legend.
Note that on the lift coefficient plot for the a = 0' case is very accurately predicted
by both methods even for small resolutions and this is why the logarithmic plot is
empty. Cases with the airfoil in angle of attack or with camber where the symmetry
was lost show a stronger dependence of the lift coefficient on the number of panels.
Martensen's method seems to be converging faster than the Hess-Smith method in
the zero mass-flux. For increasing angle of attack the rate of convergence of the HessSmith method becomes higher than the rate of convergence of Martensen's method.
For a = 0.00 the circulation and lift coefficient convergence rates were very similar
for the two methods. For a : 0.0' however Hess & Smith method converges much
faster than Martensen's method to the circulation and lift coefficient.
132
6.2
Viscous Boundary Conditions
In viscous flow computation of the vortex sheet is only a first step in properly handling
the presence of a boundary. Viscous diffusion is the mechanism that introduces the
vorticity generated on the boundary into the interior of the flow field. One of the
approaches used to spread the vortex sheet is to discretize the vortex sheet into a line
of vortex elements, placing the elements at a distance c from the body surface. This
c depends on the kinematic viscosity v.
f=
-vAt
(6.35)
3
When the random vortex method is used to simulate diffusion then the boundary
vortex sheet is cut into pieces and then each of these elements is given a random walk.
Those entering the boundary are reflected back into the flow. In other schemes those
elements that enter the body are just eliminated from the simulation. An other way
to represent the presence of a body in the flow field is by applying Neumann boundary
conditions on the vorticity. This has a physical rational in the case of viscous flows,
since the body surface is the only source of vorticity. Note that inhomogeneities or
the presence of free surface also can introduce vorticity but we will not elaborate
into that. When the boundary vorticity is shed into the flow the total circulation is
changed according to the equation:
ds = Ar =
t
D(s) dt'
Dt
(6.36)
Using the vorticity boundary condition we can write:
DI= vf1 Wds
Dt
(6.37)
s On
Combining 6.36 and 6.37 we get:
v ft+bt
O(S)
an
t
133
dt' = -,y(s)
(6.38)
If we consider the vorticity flux to be constant over the small interval of time 6t
we can write:
Ow(s)
On
_
y
y(s)
=
6t
-(6.39)
(.9
This equation constitutes a Neumann type boundary condition equivalent to the
no-slip boundary condition. The above formulation allows then to impose an integral
constraint on the strength of the vortex sheet y(s):
J
y(s) ds = -2 AB[Q(t + 6t) - Q(t)]
(6.40)
where AB is the area of the body and Q is any body rotation.
This constraint together with an inviscid, no-flux boundary integral equation for the
unknown vorticity sheet can give us the vorticity flux.
134
Chapter 7
Loads Calculation
7.1
Pressure Distribution
In chapter 2 we derived the vorticity equation form the Navier-Stokes. In this process
we eliminated the pressure term and the solved the vorticity equation in fractional
steps for the diffusion and the convection. Going back to the Navier-Stokes equation
we can then look at the one fractional step that was eliminated in the derivation of
the vorticity-equation:
avat
VPp
=
----
(7.1)
At any point s, on the body surface the velocity is equal to the body velocity. If we
use a body attached coordinate system or the body is not in motion then this means
that velocity on the body surface is zero. Just outside the thin shear layer the flow is
parallel to the body surface. This means that the normal component of the velocity
is still zero. Then we can rewrite 7.1 as:
Dy(s)
IlOP
at
p as
(7.2)
When we use Martensen's method for the satisfaction of the boundary condition
and vorticity generation the tangential component is equal to the local value of the
body vorticity sheet -y(s), i.e.
135
lP(7.3)
n
_
p Os
at
From 7.3 we can derive a numerical expression for the change in surface pressure
over the surface element n during the discrete step At:
Asf
zAP=
-p Y(sn)
A PnAt
-Af(
=- PAt(74
74
Equation 7.4 can be directly integrated to yield the pressure at any point on the
body surface:
= Pi -At
Pa= 1+$APn
Af
(7.5)
The pressure is expressed here only relative to some datum value P applicable
at point 1. A suitable technique is to set P = 0 initially. The P" values in the
neighborhood of the leading edge stagnation point S may then be searched to find
the highest value, say Ps. This may then be raised to the stagnation pressure of the
approach flow if all P, values are increased by the same amount !pU2 - Ps. All state
pressure values will then be gauge pressures (i.e. relative to P,,). An alternative way
to find the stagnation point is to find the place on the front side of the body where
the vorticity -y(s) changes sign.
The pressure coefficient is customarily defined as:
CP
-
P
SU.2
-oo
136
-
U00
(7.6)
7.2
Force Calculation from Vorticity Momentum
The net force per unit density exerted on the body from the fluid may be expressed
as:
dr
(7.7)
Fb=--d
dF
dt f9 V
In order to carry out the integration over the whole domain, covering both the body
and the fluid we add and subtract the term
dfboy
vdx so that:
Fb=
dt
fbody+fluid
+ d
dt body
(7.8)
d-
The velocity field inside the body is defined by:
(7.9)
UB + Q X (V- Ao)
dB
UB
denotes the
XB center of mass of the body and UB
137
dt
-
where
Chapter 8
Concluding Remarks
8.1
Summary
Vortex method schemes were improved for efficiency and tested numerically for sensitivity to the input parameters.
The method of gradient random walk was applied on the case of a semi-infinite
rod with Dirichlet boundary conditions for a wide variety of input parameters and
the results were compared with the analytic solution. Good agreement was observed
indicating that the reflection algorithm is properly enforcing a Dirichlet boundary
condition.
-
convergence was observed as the theory of the method of random
walks indicates. A notable insensitivity to the time step was also detected.
The method of random walks was applied to a diffusing vortex and the results were
compared to the analytic solution. The results showed the expected convergence
with respect to the number of elements used but were rather insensitive to the time
step. Correlation between the time step and the radius of the vortex core. indicated
the possibility of another stability criterion of an equivalent diffusion number. The
method of core expansion was also tested and other more modern diffusion schemes
like the Particle-Strength-Exchange method were discussed.
Fast vortex methods were also treated extensively.
138
The method of Vortex-in-Cell was implemented and tested for the case of two rotating vortices of equal strength. The results of the method were compared against the
exact solution as well as the direct Biot-Savart calculation The error showed a dependence on the position of the vortices relative to the grid. This dependence occurs
for this special case and cancels out in practice where a big number of particles is
used. The error showed dependence on the total mesh area, i.e. the grid truncation
and the boundary condition used at infinity. A new infinity-boundary condition was
proposed based on a first order asymptotic expansion of the set of vortices enclosed.
This allows for the earlier truncation of the grid leading to an overall decrease of the
computational cost. A comparison of the time per time step of the VIC method with
that of direct calculation showed that depending on the required accuracy there is a
minimum number of vortices above which the VIC method is beneficial. Below than
number the direct calculation is faster but this number corresponds to small CPU
times. On the other hand when one goes to big number of vortices the advantage of
the VIC method can be huge as its cost increases linearly with the number of particles
but with a very small slope. For the platform we used a calculation of 4000 vortices
took about 2s/step with the VIC method, while with the direct calculation it took
about 22s/step.
Numerical diffusion was investigated in a 'physical manner' by observing the equivalent diffusion introduced by the grid on an inviscidly rotating vortex discretized by
vortex blobs.
The method was then applied to study the interaction of two rotating vortices of
finite area in close proximity. The calculation showed that when the vortices are close
they merge quickly. As we move them apart the merging process delays and until
they merge the vortices exhibit some oscillatory deformation. Near the time before
the merging some particles seem to be jumping from one vortex to the other. Once
the vortices have deformed enough to come in touch the merging occurs very rapidly
leading to the formation of an elliptic vortex. When the vortices are sufficiently apart
they never merge. How much is 'sufficiently' depends on the initial area of the vortices
139
and their strengths.
A new methodology was proposed and developed for the efficient and robust implementation of the Method of Fast Multipoles. This new methodology aimed at
reducing the time for establishing interaction lists which is big portion of the overall
CPU time/step. Ways to address the tree, traverse it, adaptively refine it, establish the interaction lists and do the calculations were invented based on the existing
mathematical framework. The new method is making use of new programming capabilities and is very robust and memory efficient as the use of double-precision numbers
is minimized to the absolutely necessary.
The method was tested for the case of two rotating vortex blobs as well as the case
of two rotating vortices each represented by an equal number of vortex blobs. The
effect of the levels of tree refinement and multipole expansion order on the accuracy
and efficiency were investigated.
The results showed rapid decrease of the error with increasing expansion order up
to order 8. For orders higher than 8 there was a reduction in the convergence rate
shown as a flattening of the curve. This flattening is attributed to the fact that the
error is already so small that other sources of error becoming more significant than
the series truncation error. The increase in the expansion order had very small effect
on the CPU-time/time step. Most of the time is spent on operations related to the
tree-structure, like constructing and traversing the tree and establishing the interaction lists.
The total error showed almost no dependence on the maximum levels of tree refinements. This is a desirable result as this is a technical and not a physical parameter.
It showed some small dependence however on the minimum level of refinement. A
reduction of the error was observed when a minimum level of tree refinement was
specified. This means that for a cell containing even one vortex we refine to a specified level. This shows that the interaction of few isolated vortex particles contained
in big cells with big clusters of particles contained in much smaller cells is not as
accurate as if those isolated vortices belonged to smaller cells. At quick look this is
140
counter intuitive as it seems that interactions between a cell's vortices and vortices in
its WB list is less accurate that those belonging to its XB list. This is not generally
true but situations can arise where the vortex belonging to the big cell is closer to
the center of a cell in its WB list than to the center of the cell containing it. Then
the error is somewhat increased. The increase is not big to cause any problems but
this justifies why in some cases specifying a minimum level of refinement can cause
to smaller errors although there are more expansions and truncations involved.
The performance of the method depends on the distribution of the vortices in the
flow. The method is more efficient for flows with high clustering of vortices as large
areas of the flow field can remain unrefined. The method gave speed-ups close to the
mathematically expected and this validates our implementation.
Different redistribution schemes were discussed as well as different ways to implement viscous and inviscid boundary conditions. The mathematical framework of the
methods is provided. Martensen's method and the Hess & Smith method, were tested
for convergence, and compared for a symmetric NACA 0012 airfoil at various angles
of attack. The mass flux into the body, the circulation and the lift coefficient were
the measured quantities for the comparison. In the zero mass-flux norm Martensen's
method proved to behave better than Hess-Smith method. In the circulation and
lift coefficient norms the Hess-Smith method converged much faster for angles of attack different than zero. Another notable observation is that the Hess-Smith method
converged to the right circulation from above while Martensen's method converged
from below. Another way to state this is that if we did not use sufficient number of
panels for the resolution of the body surface the lift coefficient and circulation would
be under-predicted with Martensen's method and over-predicted with Hess-Smith
method with bigger error in the first case.
With vortices present in the flow their induced velocities on the body panels are
taken into account when forming the system for the unknown body-panel singulari141
ties. When the collocation method is used huge errors in the mass-flux arise if a vortex
particle with relatively small radius compared to the panel size is in close proximity
to the panel. To alleviate this problem instead of using collocation the average flux
caused by the vortex to the panel segment was used. This can be calculated analytically with the same formula that gives the velocity of a vortex panel to a point
divided by the length of the panel for averaging. This small fix made a tremendous
difference in the mass-flux error.
8.2
Future Work
The further and more elaborate investigation of boundary conditions in the VIC
method would be very 0.
A hybrid fast vortex method that would combine the
method of fast multipoles with the method of vortex in cell seems promising if a
number of issues could be addressed. This scheme would use the method of fats multipoles but instead of calculating directly the interactions of nearby vortices would
use the method of vortex in cell to do it. This way the method of fast multipoles
would require a small number of refinements avoiding the deficiencies involved with
very deep trees. Then for each cluster of nearby vortices the vortex in cell would be
used to calculate their interactions. This would be better than using the VIC method
over the whole domain which is very expensive if one wants to have a grid side in the
order of the vortex radius. For such method to have any merit a boundary condition
for the VIC method that would allow relatively short truncation of the VIC grid is
required. Also a rigorous theoretical error analysis would be required to ensure that
the error of the overall scheme is directly controllable by tuning the input parameters.
The interaction between a free vortex and a solid body is also worth of investigation
as some very interesting physics are involved. Highly accurate viscous boundary conditions should be developed and tested for the method to be reliable for such a study.
142
Appendix A
Geometric Algorithms
A.1
Determining if a vortex has penetrated the
boundary
To determine if a point is inside a closed curve approximated as a closed polygon we
use the method of Ray Crossings.
A ray is emitted from that point towards infinity. Then the number of intersections
to the boundary is counted. If this number is even or zero then the point is outside
of the curve. If on the other hand the number of intersections is odd the point is
contained within the body.
This method was chosen over others, because it is very general. The polygon that represents the body does not have to be convex. It can be concave too, like a Joukowski
airfoil. This algorithm is also efficient and easy to implement. This ray can be the
x-axis without loss of generality, and finding the intersection with straight segments
is thereafter trivial. This routine is used at the end of each fractional step to decide
if vortices have penetrated the boundary.
The drawbacks of the method is the necessity of handling special-case interactions
of the ray with the boundary (see Fig. A-1). If the ray hits a vertex of the polygon
or it is collinear with an edge, the algorithm will conclude that the point is in the
body. One method of eliminating most of the difficulties is to require that for an edge
143
-,
--
-----..-----------
-
---..
-
~
-~
2.
Figure A-1: The method of ray crossing for determining if a point is contained in a
general polygon.
to count as crossing the ray one of its endpoints must be strictly above the ray and
the other on, or below. After this fix the only flaw remaining is the case where the
examined point lies exactly on the boundary. However for our method this is not a
problem because of the way we handle the penetrating vortices. This means that if a
vortex that lies on the boundary is assumed to be inside the body it will be reflected
at zero distance.
A.2
Finding the nearest panel to a point
Let it be panel defined by two points P1(xi, yi) and P2 (x 2 , y2). Also let us denote by
Q(xo, yo) the point. We will show how the distance from the point to the panel is
calculated. First we find the equation of the line that the line segment P1P2 lies on.
The line will have equation:
A x + B y + r'= 0
144
(A.1)
where the coefficient are calculated as follows:
= Y2 -
Y1
(A.2)
=
X2
(A.3)
F = Y1X2 - X2 Y 1
(A.4)
A
B
The distance from the point
Q to the
-
line is:
Axo + Byo + F(A)
2
N A2 + B
We are not done yet, because this is the distance from the point to the line but not
to the line segment. There is good chance that the projection of this point in the line
defined by A.1 does not lie within the line segment.
We calculate the distances of the two end points of the panel to the point and denote
.
them d1 o and d 20 . The length of the panel itself is denoted by d 12
Recalling the cosine law, we will look for angle grater than
. Because calculating
angle is computationally relatively expensive and since we are only interested if the
angles are greater or smaller than ' we only perform the following tests:
2
d2- (d2- di) >
->(A.7)
2
If 01 > E then the minimum distance is d 1o. Similarly if 02 > P then the minimum
distance is d 2 0 . If non of the above is true then the minimum distance is do.
145
A.3
Reflecting it back into the flow
Once a vortex has been detected inside the boundary we reflect it back into the flow.
To reflect the point back in the flow the closest panel to the point is found using the
algorithm described in the previous section. During the process of finding the closest
panel we already have the distance of the vortex to the panel. The vortex is placed
in the direction of the normal of the closest panel at distance equal to the one it had
when it was inside.
146
Bibliography
[1] C. Anderson and C. Greengard. On vortex methods. SIAM Journal of Numerical
Analysis22, 22(3):413-440, 1985.
[2] C. R. Anderson. A method of local corrections for comuting the velocity field due
to a distribution of vortex blobs. Journal of ComputationalPhysics, 62:111--123,
1986.
[3] C. R. Anderson and C. Greengard, editors. Vortex Dynamics and Vortex Methods. Lectures in Applied Mathematics. AMS, Providence, Rhode Island, 1991.
[4] S. B. Baden and E. G. Puckett. A fast vortex method for computing 2d viscous
flow. Journal of Computational Physics, 91:278-297, 1990.
[5] T. A. Beale and A. Majda. Rates of convergence for viscous splitting of the
navier-stokes equations. Mathematics of Computation, 37(156):243-259, 1981.
[6] T. A. Beale and A. Majda. Vortex methods i : Convergence in three dimensions.
Mathematics of Computation, 39(159):1-27, 1982.
[7] T. J. Beale. High order accurate vortex methods with explicit velocity kernels.
Journal of Computational Physics, 58:188-208, 1985.
[8] T. J. Beale and A. Majda. Vortex methods ii: Higher order accuracy in two and
three dimensions. Mathematics of Computation, 39(159):29-52, 1982.
[9] P. W. Bearman. Vortex shedding from oscillating bluff bodies. Annual Review
of Fluid Mechanics, 16:195-222, 1984.
147
[10] T. F. Buttke. A fast adaptive vortex method for patches of constant vorticity in
two dimensions. Journal of Computational Physics, 89:161-186, 1990.
[11] R. E. Caflisch, editor. MathematicalAspects of Vortex Dynamics. SIAM, 1989.
[12] J. Carrier, L. Greengard, and V. Rokhlin. A fast adaptive multipole algorithm
for particle simulations. SIAM Journal on Scientific and Statistical Computing,
9(4):669-686, 1988.
[13] A. Y. Cheer.
Numerical study of incompressible slightly viscous flow past
blunt bodies and airfoils. SIAM Journal of Scientific and Statistical Computing, 4(4):685-705, 1983.
[14] A. J. Chorin. Discretization of a vortex sheet, with an example of roll-up. Journal
of Computational Physics, 13:423-429, 1973.
[15] A. J. Chorin. Numerical study of slightly viscous flow. Journal of Fluid Mechanics, 57(4):785-796, 1973.
[16] A. J. Chorin. Vortex sheet approximation of boundary layers. Journal of ComputationalPhysics, 27:428-442, 1977.
[17] A. J. Chorin. Vortex models and boundary layer instability. SIAM Journal of
Scientifc and Statistical Computing, 1(1):1-21, 1980.
[18] R. R. Clements. An inviscid model of two - dimensional vortex shedding. Journal
of Fluid Mechanics, 57(2):321-336, 1973.
[19] G. H. Cottet. Artificial viscocity models for vortex and particle methods. Journal
of Computational Physics, 127:299-308, 1996.
[20] J. P. Cristiansen.
Numerical simulation of hydrodynamics by the method of
point vortices. Journal of ComputationalPhysics, 13:363-379, 1973.
[21] D. G. Dritschel. Contour surgery: A topological reconnection scheme for extended integrations using contour dynamics. Journal of ComputationalPhysics,
77:240-266, 1988.
148
[22] D. Fishelov. A new vortex scheme for viscous flows. Journal of Computational
Physics, 86:211-224, 1990.
[23] A. F. Ghoniem and F. S. Sherman. Grid-free simulation of diffusion using random
walk methods. Journal of Computational Physics, 61:1-37, 1985.
[24] J. Goodman. Convergence of the random vortex method. Communications on
Pure and Applied Mathematics, 40:189-200, 1987.
[25] J. Goodman, T. Hou, and J. Lowengrub. Convergence of the point vortex method
for the 2-d euler equations. Communications on Pure and Applied Mathematics,
43:415-430, 1990.
[26] C. Greengard.
Convergence of the vortex filament method.
Mathematics of
Computation, pages 387-398, 1986.
[27] L. Greengard and V. Rokhlin. A fast algorithm for particle simulations. Journal
of Computational Physics, 73:325-348, 1987.
[28] K. E. Gustafson and J. A. Sethian, editors. Vortex Methods and Vortex Motion.
SIAM, 1991.
[29] 0. Hald and V. M. Del Prete. Convergence of vortex methods for euler's equations. Mathematics of Computation, 32(143):791-809, 1978.
[30] 0. H. Hald. Convergence of a random method with creation of vorticity. SIAM
Journal of Scientific and Statistical Computing, 7(4):1373-1386, 1986.
[31] 0. H. Hald. Convergence of vortex methods for euler's equations, iii. SIAM
Journal of Numerical Analysis, 24(3):538-582, 1987.
[32] J. T. Hamilton and G. Majda. On the rokhlin-greenguard method with vortex
blobs for problems posed in all space or periodic in 1d. Journalof Computational
Physics, 121:29-50, 1995.
[33] T. Kimura and M. Tsutahara. Flows about a rotating circular cylinder by the
discrete - vortex method. AIAA, 25(1):182-184, 1987.
149
[34] P. Koumoutsakos. Inviscid axisymmetrization of an elliptic vortex. Journal of
Computational Physics, 138:821-857, 1997.
[35] P. Koumoutsakos, A. Leonard, and F. Pepin. Boundary conditions for viscous
vortex methods. Journal of Computational Physics, 113:52-61, 1994.
[36] P. Koumoutsakos and D. Shiels. Simulations of the viscous flow normal to an impulsively started and uniformly accelerated flat plat. Journal of Fluid Mechanics,
328:177-227, 1996.
[37] P. D. Koumoutsakos. Direct Numerical Simulation of Unsteady Separated Flows
Using Vortex Methods.
Phd dissertation, California Institute of Technology,
Pasadena, California, August 1992.
[38] A. B. Langdon. Introduction to clouds-in-clouds, clouds-in-cells physics for manybody simulation. Journal of Computational Physics, 135:139-140, 1997.
[39] A. Leonard.
Vortex methods for flow simulation. Journal of Computational
Physics, 37:289-335, 1980.
[40] A. Majda. Vorticity and the mathematical theory of incompressible fluid flow.
Communications on Pure and Applied Mathematics, 39:S187-S220, 1986.
[41] S. Mas-Gallic. Deterministic particle method: Diffusion and boundary conditions. Vortex Dynamics and Vortex Methods, pages 433-465, 1991.
[42] F. Milinazzo and P. G. Saffman. The calculation of large reynolds number 2d
flow using discrete vortices with random walk. Journal of ComputationalPhysics,
23:380-392, 1977.
[43] H. 0. Nordmark. Rezoning for high order vortex methods. Journal of Computational Physics, 97:366-397, 1991.
-
[44] H. 0. Nordmark. Deterministic high order vortex methods for the 2d navier
stokes equation with rezoning. Journal of Computational Physics, 129:41-56,
1996.
150
[45] M. Perlman. On the accuracy of vortex methods. Journal of Computational
Physics, 59:200-223, 1985.
[46] E. G. Puckett. A study of the vortex sheet method and its rate of convergence.
SIAM Journal of Scientific and Statistical Computing, 10(02):298-327, 1989.
[47] P. A. Raviart. Methods particulaires. lecture notes. Centre d'etude du Breausans-nappe, France, 1987.
-
[48] S. Roberts. Accuracy of the random vortex method for a problem with non
smooth initial conditions. Journal of Computational Physics, 58:29-43, 1985.
[49] L. F. Rossi. Merging computational elements in vortex simulations. SIAM Journal of Scientific Computing, 18(4):1014-1027, 1997.
[50] G. Russo. A deterministic vortex method for the navier-stokes equations. Journal
of Computational Physics, 108:84-94, 1993.
[51] G. Russo and J. A. Strain. Fast triangular vortex methods for the 2d euler
equations. Journal of Computational Physics, 111:291-323, 1994.
[52] P. G. Saffman. Vortex Dynamics. Cambridge University Press, 1992.
[53] J. A. Sethian and A. F. Ghoniem. Validation study of vortex methods. Journal
of Computational Physics, 74:283-317, 1988.
[54] S. Shankar and L. van Dommelen. A new diffusion procedure for vortex methods.
Journal of ComputationalPhysics, 127:88-109, 1996.
[55] D. Shiels.
Simulation of Controlled Bluff Body Flow with a Viscous Vortex
Method. Phd dissertation, California Institute of Technology, Pasadena, California, May 1998.
[56] P. A. Smith and P. K. Stansby. Generalized discrete vortex method for cylinders
without sharp edges. AIAA, 25(2):199-200, 1987.
151
[57] P. A. Smith and P. K. Stansby. Impulsively started flow around a circular cylinder
by the vortex method. Journal of Fluid Mechanics, 194:45-77, 1988.
[58] P. A. Smith and P. K. Stansby. An efficient surface algorithm for random-particle
simulation of vorticity and heat transport. Journal of Computational Physics,
81:349-371, 1989.
[59] P. K. Stansby and A. G. Dixon. Simulation of flows around cylinders by a
lagrangian vortex scheme. Applied Ocean Research, 5(3):167-178, 1983.
[60] Z. H. Teng. Elliptic - vortex method for incompressible flow at high reynolds
number. Journal of Computational Physics, 46:54-68, 1982.
[61] Z. H. Teng. Variable elliptic vortex method for incompressible flow simulation.
Journal of Computational Mathematics, 4(3):256-262, 1986.
[62] E. C. Tiemroth. The Simulation of the Viscous Flow Around a Cylinder by the
Random Vortex Method. Phd dissertation, University of California, Berkeley,
May 1986.
[63] T. Westermann. Particle in cell simullations with moving boundaries - adaptive
mesh generation. Journal of ComputationalPhysics, 114:161-175, 1994.
[64] C. H. K. Williamson. Vortex dynamics in the cylinder wake. Annual Review of
Fluid Mechanics, 28:477-539, 1996.
[65] Lu Zhi Yun and T. J. Ross. Diffusing-vortex numerical scheme for solving incompressible navier stokes equations. Journalof ComputationalPhysics, 95:400-435,
1991.
[66] N. J. Zabusky, M. H. Hughes, and K. V. Roberts. Contour dynamics for the euler
equations in two dimensions. Journal of Computational Physics, 135:220-226,
1997.
152
[67]
Q.
Zou, E. A. Overman, and N. J. Zabusky. Contour dynamics for the euler
equations: Curvature controlled initial node placement and acuracy. Journal of
Computational Physics, 78:350-368, 1988.
153
Download