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