Smoke (DRAFT)

Project Leads: Michael Lentine and Andrew Selle

The goal of this project is create a simple smoke solver. This project leverages the PhysBAM code base. This simple project depends on the PhysBAM code for Advection and Projection. This project also relies heavily on parallelization code include both MPI and threading and therefore the necessary libraries need to be linked to this project for compiliation. These libraries can be found on the PhysBAM website.

This project runs a smoke solver with a constant velocity source at the bottom of the domain. Download the source. To install and run it you will first need to download the Tools library. Then follow the instructions given in the tarball to install and run.

Note that although parallelism is supported in this version of the release threading is still in the experimental stages and may not give the desired performance. New versions will be released with updated parallization in the future.

For this simple smoke solver we have created two subprojects which breaks up the necessary parts of this simple solver into an advection and a projection project. All of these projects can be run independently and viewed with either the ray tracer or the opengl viewer found on the physbam website.

Subprojects

Advection

A simple advection project which passively advects a given density field through a constant velocity field. This projects takes a velocity field V at position x specified by V(x)=1 and advects a passive density field D(x)=0.5*sin(4*pi*(x-0.25)-0.5*pi)+1 for x between 0.25 and 0.75 and 0 elsewhere. The output will be dumped into a directory named output.

Dowload the source here. Like the smoke project you will need to download Tools and then simply follow the instructions to run this project.

Projection

A simple projection project which makes a given flow field divergence free. This project takes a velocity field V at position x specified by V(x)=x and makes the result divergence free. The output will be dumped into a directory named output.

Dowload the source here. Like the smoke project you will need to download Tools and then simply follow the instructions to run this project.

Water (DRAFT)

Project Leads: Michael Lentine and Andrew Selle

The goal of this project is create a generalized fluid solver that can be used for a wide variety of applications including special effects and video games. This project leverages the PhysBAM code base. The base of the standard fluid solver uses the partilce levelset method. This project depends on the PhysBAM code for Incompressible Flow, Level Sets, and Particle Level Sets. This project also relies heavily on parallelization code include both MPI and threading and therefore the necessary libraries need to be linked to this project for compiliation.

This project runs a levelset based water simulator with a constant velocity source at the left of the domain. Download the source. To install and run it you will first need to download the Geometry library. Then follow the instructions given in the tarball to install and run.

Note that although parallelism is supported in this version of the release threading is still in the experimental stages and may not give the desired performance. New versions will be released with updated parallization in the future.

In addition to the standard Fluid solver there are a number of related projects discussed below that we will provide to achieve faster and/or different types of fluid simulations. This project is intented to primarily simulation water and does not implement any solid/fluids coupling. For the purposes of this project all solids are one-way coupled to the water flow.

Subprojects

Advection

A simple levelset advection project which passively advects a given levelset through a constant velocity field. This project is based on the deformation test from A Hybrid Particle Level Set Method for Improved Interface Capturing. The output will be dumped into a directory named output.

SPH

This project is designed to allow for SPH/PLS coupled simualtions to achieve reastic spram an foam effects.

Vortex Particles

This goal of this project is to add vortex particles to create more vibrant fluid flow even when running a low resolutions.

Coarse Projections

The goal of this project is to provide a method for significanly reducing the cost of the projection solve allowing for faster simulations.

Conservative Advection

The goal of this project is to provide a method for decreasing the loss of momentum and energy during the advection step allowing for faster simulation times by increasing the time step taken. This project is still in development.

PIC/FLIP

This project implelents a PIC/FLIP solver which can be used to cheaply simulate water simulations.

Multiphase Flow

The goal of this project is to allow for simulation of various pheomena the combines multiple fluids.