Michael Lentine

Ph.D. Candidate

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.

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.