A method of local corrections for computing the velocity field due to a distribution of vortex blobs
Journal of Computational Physics
A fast algorithm for particle simulations
Journal of Computational Physics
Fast, adaptive summation of point forces in the two-dimensional Poisson equation
Journal of Computational Physics
An introduction to object-oriented programming
An introduction to object-oriented programming
An implementation of the fast multipole method without multipoles
SIAM Journal on Scientific and Statistical Computing
Lightweight computational steering of very large scale molecular dynamics simulations
Supercomputing '96 Proceedings of the 1996 ACM/IEEE conference on Supercomputing
The C++ Programming Language, Third Edition
The C++ Programming Language, Third Edition
A Fast, Two-Dimensional Panel Method
SIAM Journal on Scientific Computing
A Fast Multipole Method for Higher Order Vortex Panels in Two Dimensions
SIAM Journal on Scientific Computing
Efficient random walks in the presence of complex two-dimensional geometries
Computers & Mathematics with Applications
IPython: A System for Interactive Scientific Computing
Computing in Science and Engineering
Matplotlib: A 2D Graphics Environment
Computing in Science and Engineering
SWIG: an easy to use tool for integrating scripting languages with C and C++
TCLTK'96 Proceedings of the 4th conference on USENIX Tcl/Tk Workshop, 1996 - Volume 4
Hi-index | 0.00 |
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.