Physics Programming Projects
In this page I present some of the physics projects I have been working for many years. These projects are part of a simulation environment that I am developping (see below) main objective is to provide a programming environment for the rapid prototyping of physics based algorithm . This project is motivated by my experience in industrial applications particularly in simulation (my experience at CAE Inc.) a world leader in simulation and also at CERCA (technology transfer center) working on CFD simulation of Open Channel Flow simulation (see below).
Development of a scientific framework based on modern software paradigm with emphasis on reusability and extensibility of software components in the field of computational physics.
Scientific Framework (SFX)
Project is based on an Object-Oriented framework with main objective is to provide a programming environment for the rapid prototyping of mathematical/physics based algorithm using classes at a high abstraction level.
The framework is essentially a collection of C++ classes organized in libraries. The design is centered on the concept of modularization and based on “plug-in” technology which allowed all the various modules of the software to interoperate in a decoupled fashion, thus enhancing the software’s extensibility (with respect to problem classes as well as solutions methods) and scalability simultaneously by simply producing a “plug-in” module to support its (new) functionality. It meets a very important requirement in scientific software, namely flexibility in the choice of problems and methods. The current application area is mainly in the Open Channel Flow Simulation (wave simulator, CFD simulation)) and physics 3D (rigid body simulator).
— Project: DamBreak Physics Simulator
Developing a physics library with main application in Open Channel Flow Simulation. DamBreak++ is an application that it is expected to facilitate and accelerate the development of benchmarking numerical algorithm. It provides extreme conditions to assess the numerical stability of the model.
I am currently re-factoring the simulator code to obtain a more scalable and maintainable new generation (first release).
1. Migrating prototype to a new version of the Visual Studio (VS12 with C++11) and then to C++11/14 VS15;
2. Performed manual testing as needed, create test cases and defect recorded;
3. Set up a guideline and policies for automation unit testing, integrate a documentation tool;
4. Working on the development of a GUI to facilitate testing and configure simulation;
5. Software architecture (define system high level abstraction), documentation of these structures;
6. Write scientific report (present simulation result, physics algorithm and software architecture);
Technologies: numerical simulation using Finite, Optimization technique (Numerical programming/data structure), C++, OO
— Project: Physics 3D Demo
Physics 3D library for the simulation of rigid-body. Prototyping environment where user can experiment different implementation or third-party physics library such as Newton Dynamics, ODE (Open Dynamic Engine);
1. Implementing a Math3D library (linear algebra) feature efficient math operation (fast-floating point operation). The library feature mathematical abstraction for manipulating 3D entity easily, an Object-Oriented approach in the implementation of mathematical structure (data), such as rotation, vector calculus;
2. Developing physics rigid body class structure;
Below a snapshot of our developing environment. The simulation system is made of many plug-ins