Immersed Boundary Method in Titanium

Introduction

The immersed boundary method was developed by Charles Peskin and David McQueen of the Courant Institute of Mathematical Sciences of New York University to simulate a class of biological system. The algorithm is an efficient way to simulate systems that can be represented by elatic fibers immersed in a fluid. Examples of these systems include the mamillian heart, sea-urchin embryos and cilia cells.

The NYU has a mammilian heart simulation that uses immersed boundary method and is used in medical simulations. The NYU has modified the code into a generic simulator, so that the user can add specific informaion to the code to make it run their simultion. This immersed boundary general software is written in fortran77 and runs on shared memory vector architectures.

We are making an effort to port the general software to Titanium and make it run on distributed platforms. Currently, our target is to run the heart simulation on the SP3 using the Titanium port of the Immersed Boundary General Software. Future efforts will include using an adaptive Navier Stokes solver to increase scalability, performance tuning to take advantage of the SP memory heiarchy, and extending the functionality of the package to include simulation of bending angle, tether points and boundary condition.

This is a joint research effort between LBNL, SDSC, UC Berekley and CIMS, managed by Prof. Katherine Yelick and is an NPACI Alpha project.

Note: The immersed boundary heart code is now maintained by Sabrina Merchant. The code on this web site is out-of-date.

This is a screenshot of the simulation of a contractile torus.

This is a screen shot of the simulation of a heart. Different colours represent the different muscle layers.

Papers

Presentations:

Downloads

We now have a Titanium Generic Immersed Boundary Software library that can be used by scientists to write their immersed boundary software in Titanium. The Titanium Generic Immersed Boundary Software is available here with several sample applications.
TiGIBS package. This package contains the generic immersed boundary code. Instructions on using this package.
TiGIBS package, does not use FFTW. This package contains the generic immersed boundary code, but does not use FFTW in the Navier-Stokes solver, and therefore runs slower, but does not require FFTW. Instructions on using this package.
Sample Torus simulation
This is a sample application that uses the TiGIBS to run the torus simulation. The code runs 8 timesteps and writes out performance numbers as well as the output files. From NYC.
Instructions on running this code.
Fiber input file (Binary version)
Marker input file
Sample heart simulation
This application uses TiGIBS to run the heart simulation. From NYC.
Instructions on running this code.
Input files for all heart-based simulations.
Experiment 800
NYC's "Experiment 800", another instance of the heart simulation. From NYC.
Instructions on running this code.
Input files for all heart-based simulations.
Experiment 800 with checkpoint recovery NYC's "Experiment 800", another instance of the heart simulation. This version has logic to recover from a previous checkpoint, instead of running off from a set of input files.
Instructions on running this code.
Input files for all heart-based simulations
Sample cochlea simulation. This application runs a cochlea simulation. From Caltech.
Instructions on running this code.
A pre-release of the torus simulation code in Titanium is available here .
A pre-release of the heart simulation code in Titanium is available here .

This is the screen shot of a cochlea simulation

Simon Yau, CS Division, UC Berkeley