Rigid, Melting, and Flowing Fluid
Carlson, Mark Thomas
MetadataShow full item record
This work focuses on the simulation of fluids as they transition between a solid and a liquid state, and as they interact with rigid bodies in a realistic fashion. There is an underlying theme to my work that I did not recognize until I examined my body of research as a whole. The equations of motion that are generally considered appropriate only for liquids or gas can also be used to model solids. Without adding extra constraints, one can model a solid simply as a fluid with a high viscosity. Admittedly, this representation will only get you so far, but this simple representation can create some very nice animations of objects that start as solids, and then melt into liquid over time. Another way to represent solids with the fluid equations is to add extra constraints to the equations. I use this representation in the parts of this work that focus on the two-way coupling of liquids with rigid bodies. The coupling affects both how the liquid moves the rigid bodies, and how the rigid bodies in turn affect the motion of the fluid. There are three components that are needed to allow solids and fluids to interact: a rigid body solver, a fluid solver, and a mechanism for the coupling of the two solvers. The fluid solver used in this work was presented in . This Melting and Flowing solver is a fast and stable system for animating materials that melt, flow, and solidify. Examples of realworld materials that exhibit these phenomena include melting candles, lava flow, the hardening of cement, icicle formation, and limestone deposition. Key to this fluid solver is the idea that we can plausibly simulate such phenomena by simply varying the viscosity inside a standard fluid solver, treating solid and nearly-solid materials as very high viscosity fluids. The computational method modifies the Marker-And-Cell algorithm  in order to rapidly simulate fluids with variable and arbitrarily high viscosity. The modifications allow the viscosity of the material to change in space and time according to variation in temperature, water content, or any other spatial variable. This in turn allows different locations in the same continuous material to exhibit states ranging from the absolute rigidity or slight bending of hardened wax to the splashing and sloshing of water. The coupling that ties together the rigid body and fluid solvers was presented in , and is known as the Rigid Fluid method. It is a technique for animating the interplay between rigid bodies and viscous incompressible fluid with free surfaces. Distributed Lagrange multipliers are used to ensure two-way coupling that generates realistic motion for both the solid objects and the fluid as they interact with one another. The rigid fluid method is so named because the simulator treats the rigid objects as if they were made of fluid. The rigidity of such an object is maintained by identifying the region of the velocity field that is inside the object and constraining those velocities to be rigid body motion. The rigid fluid method is straightforward to implement, incurs very little computational overhead, and can be added as a bridge between current fluid simulators and rigid body solvers. Many solid objects of different densities (e.g., wood or lead) can be combined in the same animation. The rigid body solver used in this work is the impulse based solver, with shock propagation introduced by Guendelman et al. in . The rigid body solver allows for collisions ranging from completely elastic, where an object can bounce around forever without loss of energy, to completely inelastic where all energy is spent in the collision. Static and dynamic frictional forces are also incorporated. The details of this rigid body solver will not be discussed, but the small changes needed to couple this solver to interact with fluid will be. When simulating fluids, the fluid-air interface (free surface) is an important part of the simulation. In , the free surface is modelled by a set of marker particles, and after running a simulation we create detailed polygonal models of the fluid by splatting particles into a volumetric grid and then render these models using ray tracing with sub-surface scattering. In , I model the free surface with a particle level set technique . The surface is then rendered by first extracting a triangulated surface from the level set and then ray tracing that surface with the Persistence of Vision Raytracer (http://povray.org).