Julia CFD package based on the Immersed Boundary Projection Method (IBPM) from Taira & Colonius (2007), with multigrid method from Colonius & Taira (2008).
Oscillating plate at Reynolds number 200. See "Examples" folder for other example cases.
structure-domain/sample-bodies.jl
file also has utilities to make a couple of basic bodies (a cylinder and 4-digit NACA airfoils, for instance).Once a Problem and State are defined, the basic time-stepping is to just call advance!(state, prob, t)
. There are also some helpful functions in ibpm.jl
to run the full simulation, for instance to save a GIF of the solution.
Currently only rigid bodies have been implemented, although a single moving body can be simulated by moving the grid (a "body-fixed" reference frame, although the equations are in the inertial lab frame). The reference cases (see the benchmarks folder) match the Fortran implementation to within $10^{-6}$ relative error, but with an average of about 40% speedup (and slightly more compared to the C++ code).
The next plans include arbitrary motion (with a fixed grid), parallelization, and adding an FSI solver for flexible bodies.