ACM Home Page
Please provide us with feedback. Feedback
An Object-Oriented Design for Two-Dimensional Vortex Particle Methods
Full text PdfPdf (5.62 MB)
Source
ACM Transactions on Mathematical Software (TOMS) archive
Volume 36 ,  Issue 4  (August 2009) table of contents
Article No. 18  
Year of Publication: 2009
ISSN:0098-3500
Authors
Prabhu Ramachandran  Indian Institute of Technology Bombay
M. Ramakrishna  Indian Institute of Technology Madras
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 41,   Downloads (12 Months): 98,   Citation Count: 0
Additional Information:

abstract   references   index terms  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1555386.1555387
What is a DOI?

ABSTRACT

Vortex methods offer a grid-free alternative to simulating incompressible, viscous, fluid flows. They require the use of fairly sophisticated algorithms and can be complicated to implement for general flows. This article describes an object-oriented design used to implement a vortex particle based flow solver in two dimensions. We provide an overview of the various abstractions that arose as a result of this design. Several of the algorithms have common components that may be abstracted and reused. We demonstrate how the design allowed us to derive the traditional benefits of OOD. In addition, we show how the design directly suggested elegant generalizations of existing algorithms. Finally, we show the benefits of using software testing techniques and building a powerful scripting layer for the library.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Anderson, C. R. 1986. A method of local corrections for computing the velocity field due to a distribution of vortex blobs. J. Comput. Phys. 62, 11--123.
 
2
Anderson, C. R. 1992. An implementation of the fast multipole method without multipoles. SIAM J. Sci. Stat. Comput. 13, 4, 923--947.
 
3
Beazley, D. et al. 1995. SWIG: Simplified wrapper and interface generator. http://www.swig.org.
 
4
Beazley, D. M. 1996. SWIG: An easy to use tool for integrating scripting languages with C and C++. In Proceedings of the 4th Annual Tcl/Tk Workshop’96. USENIX Association, 129--139.
 
5
Beazley, D. M. and Lomdahl, P. S. 1996. Lightweight computational steering of very large scale molecular dynamics simulations. In Proceedings of the ACM/IEEE Conference on Supercomputing (CDROM) (Supercoming’96). IEEE Computer Society Press, 50.
 
6
Budd, T. 1991. An Introduction to Object-Oriented Programming, 1st ed. Addison-Wesley, Reading, MA.
 
7
Carrier, J., Greengard, L., and Rokhlin, V. 1988. A fast adaptive multipole algorithm for particle simulations. SIAM J. Sci. Stat. Comput. 9, 4, 669--686.
 
8
Chorin, A. J. 1973. Numerical study of slightly viscous flow. J. Fluid Mech. 57, 4, 785--796.
 
9
Chorin, A. J. 1978. Vortex sheet approximation of boundary layers. J. Comput. Phys. 27, 3, 428--442.
 
10
Chorin, A. J. 1980. Vortex models and boundary layer instability. SIAM J. Sci. Statist. Comput. 1, 1--21.
 
11
Cottet, G.-H. and Koumoutsakos, P. 2000. Vortex Methods: Theory and Practice. Cambridge University Press, Cambridge, UK.
 
12
Feathers, M. et al. 2000. CppUnit: A C++ port of the JUnit framework for unit testing. http://cppunit.sourceforge.net/.
 
13
Greengard, L. and Rokhlin, V. 1987. A fast algorithm for particle simulations. J. Comput. Phys. 73, 325--348.
 
14
Hess, J. L. and Smith, A. M. O. 1966. Calculation of potential flow about arbitrary bodies. Prog. Aeronaut. Sci. 8, 1--138.
 
15
Hunter, J. D. 2007. Matplotlib: A 2D graphics environment. Comput. Sci. Eng. 9, 3, 90--95.
 
16
Jones, E., Oliphant, T., Peterson, P., et al. 2001. SciPy: Open source scientific tools for Python. http://www.scipy.org/.
 
17
Katz, J. and Plotkin, A. 1991. Low-Speed Aerodynamics: From Wing Theory to Panel Methods. McGraw--Hill Education, New York, NY.
 
18
Leonard, A. 1980. Vortex methods for flow simulation. J. Comput. Phys. 37, 289--335.
 
19
Majda, A. J. and Bertozzi, A. L. 2001. Vorticity and Incompressible Fluid Flow. Cambridge University Press, Cambridge, UK.
 
20
Nielsen, O. M. 2001. Pypar: parallel programming in the spirit of Python. http://datamining.anu.edu.au/~ole/pypar/.
 
21
Pérez, F. and Granger, B. 2007. IPython: A system for interactive scientific computing. Comput. Sci. Eng. 9, 3, 21--29.
 
22
Puckett, E. G. 1991. Vortex methods: An introduction and survey of selected research topics. In Incompressible Computational Fluid Dynamics---Trends and Advances, R. A. Nicolaides and M. D. Gunzburger, Eds. Cambridge University Press, Cambridge, UK, 335.
 
23
Ramachandran, P. 2003. Scientific data visualization with MayaVi. In SciPy’03----Python for Scientific Computing Workshop. CalTech, Pasadena, CA.
 
24
Ramachandran, P. 2004a. Development and study of a high-resolution two-dimensional random vortex method. Ph.D. dissertation. Department of Aerospace Engineering, IIT-Madras, Chennai, India.
 
25
Ramachandran, P. 2004b. Python for CFD: A case study. In SciPy’04---Python for Scientific Computing Conference. CalTech, Pasadena, CA.
 
26
Ramachandran, P., Rajan, S. C., and Ramakrishna, M. 2003. A fast, two-dimensional panel method. SIAM J. Sci. Comput. 24, 6, 1864--1878.
 
27
Ramachandran, P., Rajan, S. C., and Ramakrishna, M. 2005. A fast multipole method for higher order vortex panels in two dimensions. SIAM J. Sci. Comput. 26, 5, 1620--1642.
 
28
Ramachandran, P., Ramakrishna, M., and Rajan, S. C. 2007. Efficient rectilinear particle motion in the presence of complex two-dimensional geometries. Comput. Math. Appl. 53, 2, 329--344. (Recent Advances in Non-Linear Mechanics).
 
29
Stroustrup, B. 1998. The C++ Programming Language, 3rd Ed. Addison-Wesley, Reading, MA.
 
30
Turner, P. J., Stambulchik, E., et al. 1998. Grace: A 2d plotting tool. http://plasma-gate.weizmann.ac.il/Grace/.
 
31
van Dommelen, L. and Rundensteiner, E. A. 1989. Fast, adaptive summation of point forces in the two-dimensional Poisson equation. J. Comput. Phys. 83, 126--147.
 
32
van Heesch, D. 1997. Doxygen. http://www.stack.nl/~dimitri/doxygen/index.html.
 
33
van Rossum, G. et al. 1991. The Python programming language. http://www.python.org/.