DamBreak++ Simulator

Motivation

DamBreak++ is an application (physics simulator) that it is expected to facilitate and accelerate the development of benchmarking numerical algorithm.

Problem description (initial condition)

A rectangular column of water, in hydrostatic equilibrium, is confined between two walls. At the beginning of the calculation the right wall is removed and the water is allowed to flow out to the horizontal wall. The initial setup of the dam-break problem is shown in the figure below.

Mathematical Model

This phenomenon is best described by the one-dimensional shallow water equations in conservative form with sink. Below we present the physical system (set of equations) to solve by some method of approximation called numerical method:

where U is the state vector, F is the flux tensor (include pressure and convective terms) and S represent the source terms or sink (S_0 is the bottom term and S_f is the friction model which is described by the Manning formula).

Use Case Diagram

In our simulation environment, there are several things that should be tracked during the simulation. For example, the simulation should record and report the wave’s position, velocity and acceleration. Also, it should also calculate the wave’s potential and total energies and report them. Lastly, the simulation should report the maximum height achieved by the wave, the total simulation time, and hydraulic parameters and it’s impact on the simulation. This is a typical scenario and it’s expressed by a Use Case diagram.

DamBreak Wave Propagation

We adopt a finite volumes solvers to integrate the Shallow Water Equations, the simplified 1D governing equations of unsteady open channel flow: the HLL scheme (Harten-Lax-Levy) and a modified Lax-Friedrichs scheme. As we discussed in St-Venant Model page, those mathematical models solve the SWE written in conservative form, which allows the software to reproduce the discontinuities of a flow regime variations without incur in instabilities of the solution.

DamBreak Simulator Code Snippets

DamBreak Simulator Initialization

Tips and Tricks

C++ has many features which make this language very attractive for scientific programming, and one of them is the operator overload functionality. I present an example taken from our programming environment (math3D library) that use this to represent a rotation class (Euler angles).

Projects

I’m currently working on updating of an interior designer application, used by multinational furniture giant, to a 2nd generation version powered with state-of-the-art technology provided with Virtual Reality (VR) headset.

News

Mandate for the development of dispatch system solutions specifically designed for trucking fleets to manage transportation activity including tracking orders, efficient dispatch and route optimization. Goal is to optimize inbound and/or outbound transportation operations.