DamBreak Simulateur Physique

Projet Librairie de Modélisation Physique C++ Mise au point d’un environnement de programmation scientifique pour valider des schémas numériques sur le problème du bris de barrage unidimensionnel. Présentement, la librairie permet de programmer des schémas numériques explicites.

Motivation

Créer un environnement de programmation pour la solution numérique des équations de St-Venant unidimensionnel. L’emphase est mise sur la facilité et la flexibilité à développer/implémenter des algorithmes physiques avec un minimum d’effort à partir de composantes déjà testés et validés, accélérant ainsi le développement de simulateur physique dans la phase de prototypage. Dans les projets de recherche industriel, le physicien est souvent appelé à tester ou à expérimenter différents scénarios, ce type d’environnement répond à ce besoin.

Approche

L’approche est basée sur la technologie Orientée-Objet Numérique ou de type «Framework», qui consiste à définir une couche de classes de haut niveau qui définissent les concepts du système que l’on veut modéliser et de laisser l’usager compléter ou définir l’application.  Pour cela nous utilisons un concept emprunte au monde de la business appelé COM (Component Object Model) que nous avons renomme POM (Physics Object Model). Dans cette approche une composante défini une fonctionnalité du système qui est généralement sous forme de plug-ins ou DLL (Dynamic Link Library). Un ensemble d’interfaces définissent les différentes composantes (frontières des concepts du système). Celles-ci deviennent la porte d’entrée afin de construire une application. Le développeur qui a l’intention d’utiliser le « Framework » doit fournir une implémentation des interfaces (composantes) qui est un plug-in du système. Cette architecture modulaire ou les composantes peuvent être remplacées facilement procure une grande flexibilité au niveau de l’implémentation. L’utilisation de différents patrons de conception sont utilisés pour la construction de tel système de simulation.

Description du problème (condition initiale)

Ce test classique est considéré comme un banc d’essai pour la comparaison de la performance de schémas numériques pour les écoulements transitionnels discontinus. il est largement considéré comme un cas test pour la validation de schémas numériques. Une membrane sépare une masse d’eau (figure ci-dessous), à un certain moment on enlève la membrane, une onde se propage de gauche vers la droite. Mathématiquement ce phénomène est décrit par un ensemble d’équations mathématique appelées équations de St-Venant. Pour obtenir une solution on doit faire appel à des techniques d’approximation appelées méthode numérique ou les équations sont mise sous forme d’un système algébrique.

Modèle Mathématique

Ce phénomène physique est décrit par les équations de St-Venant unidimensionnel.

Scénario typique

Nous décrivons un scénario possible d’utilisation de la librairie. Ces étapes peuvent changer d’un cas à un autre, nous présentons ci-dessous les principales:

  1. Définir une discrétisation (globale discrétisation);
  2. Définir des conditions initiales et des conditions frontières;
  3. Définir une méthode numérique;
  4. Définir un algorithme physique;
  5. Définir les mesures physiques sur notre système;
  6. Définir un rapport pour le résumé de la simulation;
  7. Définir une sauvegarde pour le data;

NOUVELLES ET ARTICLES See all

  • Fonction Lambda, un incontournable

    Tips and Tricks!

    Les fonctions anonymes dites “lambda” introduites depuis C++11 trouvent de nombreux cas d’utilisation où l’on aurait à écrire une fonction pour réaliser des taches simples, qui nécessite quelques lignes de code. Je présente un exemple de l’utilisation de celle-ci de notre environnement de programmation.

clients and partners

Autolog