Geovisualization Term Project

Breaking Dam animation using Liquidfun

Pyroclastic density currents, or PDC's, and similar types of granular flows resulting from a structural collapse in a volcanic system, are some of the most devastating and unpredictable hazards associated with volcanic activity. These flows are made up of volcanic ash particles, gases, and rocks that can travel at fast speeds over very large distances in short amounts of time. Because of the consequences these flows possess, it is crucial in determining the duration and magnitude of these events for the sake of hazard mitigation. Due to the nature and composition of these flows, they can be categorized into solid phase interactions and fluid phase interactions where solid phases obey laws of granular physics and the fluid counterparts follow the laws of fluid dynamics. PDCs, and debris flows, will continue to propogate away from the source until they collect enough particles to become buoyant, or become reseted through frictional resistance (Dufek, 2016). These flows are controlled by gravity and their density differential relative to the surrounding area. It is also important to note that the distance covered, and momentum accumulation acquired during runoff are highly dependent on topographical variations.

The code shown below is a useful tool for being able to visualize a granular flow down a slope in a 2D environment. The basis for the boundary conditions are to represent the problem of a "breaking dam", where right boundary containing a block of fluid is suddenly removed. Because of the nature of this problem, we are able to analyze the momentum in the x and y direction using the Navier-Stokes Solution. While the code below may not be able to project a particle system using the Navier-Stokes due to the large computing power required, it still provides a good example of how liquid particles can interact with the physical boundaries in a "breaking dam" scenario.

The code below was generated using a toolkit called liquidfun. It is a fluid simulation C++ library based upon Box2d. The purpose of this tool is to produce animation of liquid properties. This toolbox, like other tools that create particle systems, creates a position, and velocity for each particle. It is when these particles interact with surrounding objects, that they're flagged in order to react a certain. This code is maintained by google, and is currently a side project of box 2d, which is used as a 2d physics engine for games. Box 2D is developed by Erin Catto. Since this code is an open source engine, its source properties can be created and changed for a variety of projects.

The code below relies on a few different input parameters. The most important function is the renderer.js. This function renders the particles into the created world. This includes alterations to the particle/circle vertices, and geometry attributes (position, color), and goes through numerous steps to draw. The testbed feature is how the particles are brought into the world. The display properties, and windows are created using three.js. The actual input file for the "dam Break" creates the polygons and applies the particle system. The largest factor in making the fluid properties act realistically, is to make sure the gravity is much greater than the velocity of the particles in the y axis. Source code and documentation for this project can be found here