Skip to content
Immersed Boundary Projection Method
C++ Other
  1. C++ 99.6%
  2. Other 0.4%
Branch: master
Clone or download
Latest commit ca03e7f Aug 14, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
benchmarking minor changes to geometry file example/cylinder.geom so that it works… Jan 21, 2017
build Add StateVector class Jan 23, 2019
config Fix conflicts May 8, 2019
doc Update bibliography reference. Change "sin transform" to "sine transf… Jan 14, 2016
examples Fix examples and add phase to pitchplunge Jan 24, 2019
src Merge pull request #8 from dfloryan/addStateVector Aug 14, 2019
test Added gtest license information Oct 27, 2012
xcode/IBPM.xcodeproj Minor changes to documentation. Nov 11, 2008
.gitignore Fix some doxygen problems Nov 7, 2012
LICENSE Add BSD license Jul 25, 2014
Makefile Simplified build procedure: removed 'lib' and 'bin' directories, repl… May 18, 2009
ibpm.geom [/branches/ibpm-ubf] Added ibpm.geom and modified to test for… Feb 19, 2011


README for Immersed Boundary Projection Method (IBPM)

The code contained in this distribution uses an immersed boundary method to
solve the two-dimensional incompressible Navier-Stokes equations around
complex geometries, using the projection method described in Taira and
Colonius (2007). In particular, this code implements the "fast method"
described in Section 3.3 of Colonius and Taira (2008), using the multi-domain
approach for far-field boundary conditions, as described in section 4 of this

Getting started

To run the code, first build the executables as described below. The main
executable is called 'ibpm' and will be created in the 'build' directory.

The code reads an input file to determine the geometry, and a sample input
file (for a cylinder) is contained in 'examples/cylinder.geom'.

To run the code for this example:
	cd examples
	../build/ibpm -geom cylinder.geom

This will initialize the solver with a zero initial condition, and evolve the
flow for 250 timesteps, writing binary 'restart' files (e.g. ibpm00100.bin)
and ASCII files readable by the Tecplot plotting software (ibpm00100.plt).
Lift and drag forces are written to the file ibpm.force, and the command
executed is written to a file ibpm.cmd (so the same run can be recreated

The default options (numbers of gridpoints, names of output files, etc) can be
changed by command line arguments. To see the available options:
	../build/ibpm -h


	C++ compiler

	FFTW library, version 3

	Doxygen (to build documentation)

Building the library and executables:

The default configuration is to compile the code with the GCC compiler, with
the FFTW library in a default location known to the compiler (e.g.
/usr/local/lib). If this is acceptable, then to build the library and
executables, all you need to do is type


from the root directory of the distribution (we will call this <ibpm>). The
library and command-line tools will be generated in the 'build' directory.

To customize the build process for your system, make a copy of the file
'config/' and modify it as needed (this file is included by other
Makefiles, and the format is pretty self-explanatory). Save the new file as
<ibpm>/config/ and type 'make' from the root <ibpm> directory, as

Building and running the automated tests:
	make test

Building the documentation:
	make doc


The documentation consists of a user manual (in doc/ibpm_manual.tex), which
describes the main functionality of the code, as well as detailed
documentation automatically generated by Doxygen.

The user manual is the best starting place for new users, and explains the
format of the geometry files, among other things.

The default configuration for the automatically generated documentation is to
generate both html and LaTeX documentation, but this can be changed by
modifying the file 'doc/Doxyfile'. Once the documentation has been built, the
html documentation (usually the most useful) can be found in
'doc/html/index.html', and the LaTeX documentation can be found in

K. Taira and T. Colonius. The immersed boundary method: A projection approach. J. Comput. Phys., 225(2):2118-2137, August 2007.

T. Colonius and K. Taira. A fast immersed boundary method using a nullspace approach and multi-domain far-field boundary conditions. Comp. Meth. Appl. Mech. Eng., 197(25-28):2131–46, 2008.
You can’t perform that action at this time.