pysces: Boundary Element Method for Python

This package implements a boundary element method for solving for the fluid flow around streamlined bodies moving in a potential flow. The goal is to provide a clean interface so that different methods may be easily swapped out, while being computationally efficient.

Testing and coverage

Automated tests are provided, and may be run with:

$ python runtests.py

You can also generate a coverage report as follows:

$ coverage run runtests.py
$ coverage report -m

To generate a nice html report, use:

$ coverage html

and then open the files generated in the directory htmlcov/.

Documentation

Function reference

The pysces package implements a boundary element method for inviscid fluid flows.

Generating bodies

Body(points) Base class for representing bodies
TransformedBody(body[, angle, displacement]) Base class for rigid (Euclidean) transformations of existing bodies
Pitching(body, amplitude, frequency[, phase]) Sinusoidal pitching for an existing body
Heaving(body, displacement, frequency[, phase]) Sinusoidal heaving for an existing body
cylinder(radius, num_points) Return a circular Body with the given radius and number of points
flat_plate(num_points) Return a flat plate Body with the given number of points.
joukowski_foil([xcenter, ycenter, a, numpoints]) Return a Joukowski foil Body.
karman_trefftz_foil([xcenter, ycenter, a, ...]) Return a Karman-Trefftz foil Body.
naca_airfoil(code, num_points[, ...]) Return a NACA 4-digit series airfoil
van_de_vooren_foil([semichord, thickness, ...]) Return a van de Vooren foil Body.

Panel methods

Vortices([positions, strengths])
BoundVortices(body[, Uinfty]) A class for bound vortex panels
BoundSourceDoublets(body)

Indices and tables