Technical Reports

 An Extensible C++ Framework for One-Dimensional Open Channel Flow Simulation


 In this report we provide an introduction to ODE, then present an extensible Object-Oriented framework – written in C++ – with emphasis on the reusability of modules for ODE solvers. The ability to extend this API to accomodate new algorithms as they are developed is particularly attractive. This facilitates our work to find the best numerical method, and speed the development of a dedicated simulator for specific cases.


Validating Shock Capturing Schemes On The Dam Break Problem,

J. Belanger, Elligno Inc. Technical report no. TR1-2007-01 (March 2007)



A C++ Differential Equations Solver using Object-Oriented Numeric,

J. Belanger Elligno Inc. Technical Report no. TR-2006-01 (September 2006)


Over the last few years we have been migrating a small library of numerical code originally written in C to C++. In this report, we present the mathematical abstractions used and how object-oriented programming techniques are applied for scientific software design. Finally implementations details are provided including relationship between data structure. The result is tight, readable code that is easy to maintain and extend. Example with Shallow water equations is drawn from our prototype C++ based environment.


A Test Field Calibration to Validate Shallow-Water Codes: the Case of the Ste- Marguerite River with AquaDyn, J. Belanger , M. Carreau and A. Vincent, CERCA Technical Report no. R2000-6, (September 2000)


This paper reports on a rigourous field testing of AquaDyn for a rapidly varied shallow water flow in a complex river geometry. AquaDyn, a Surface Water Modeling Software, uses a finite element code to solve numerically the  Saint-Venant equations. The river reach selected for the field test is a 2 km section of the Sainte-Marguerite river located in the province of Quebec. This river reach was chosen for the complexity of its river flow and for the quality of the field data available. The reproduction of  the observed hydraulic flow of the Sainte-Marguerite river reach is a strong validation for shallow-water codes. The reach exhibits torrential flow, transition to fluvial condition through an hydraulic jump, complex bed elevation including an island and flood planes. In this report, we demonstrate that AquaDyn numerical results successfully reproduce the observed flow regime with a deviation of less than a few percent locally.

Complete report ShallowWater_RealCase

Simulation 2D d’une section de la rivière Ste-Marguerite, – J.Belanger et A.Vincent Contrat sous SoftKit Technologies Inc. and CERCA (1995)




  • C++ scientific code snippet

    Tips and Tricks

    An example of how STL (Standard Template Library) can be used to write scientific code. In our programming environment we make an extensive use of this kind of technique. From our experience, it helps to write better code that is easier to understand and less error prone.
  • IKEA Virtual Reality Extract


    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.

clients and partners