Modélisation & simulations physiques [POO] - Algo - Programmation
Marsh Posté le 24-03-2010 à 10:59:56
T'as regardé ce qui existait en GPL avant de tout recoder?
Pour la chimie, j'ai trouvé ça, par ex : http://fsffrance.org/science/chimie.fr.html
Regarde si y'a pas des trucs pour la physique. De même, avec des outils style matlab, scilab ou autre ne pourraient-ils pas fournir une base pour l'IHM et certaines libs de calcul?
Marsh Posté le 24-03-2010 à 11:34:05
Merci pour les suggestions... Il existe effectivement pas mal de trucs de chimie fondamentale, mais c'est pas trop notre champ d'activités...
Nous sommes plutôt dans la modélisation des procédés industriels et les risques liés à leur défaillance. Bref on mélange allègrement de la chimie, mécanique des fluides, thermique, statistiques...
Donc les modèles dont je parle ici sont vraiment des trucs "maison", fruits des recherches et réflexions menées dans le département et pour lesquels il n'existe pratiquement pas d'équivalent libre/gratuit (ou alors trop simplifié, pas assez spécifique). En face, on a aussi à disposition des solutions commerciales hyper spécifiques à plusieurs dizaine de milliers d'euros la licence mais qu'on ne peut utiliser comme on veut (en plus de l'aspect "boite noire" ).
Mathématiquement, il n'y a rien de très compliqué, ce sont des successions d'équations algébriques, avec des résolutions numériques d'équations différentielles de temps en temps... donc pas nécessairement besoin d'outils comme matlab ou scilab (j'ai accès à des lib de calcul numérique/matriciel/différentiel si besoin). La vraie valeur ajoutée est dans la paramétrisation des modèles.
En fait mon problème est plutôt:
Je modélise un phénomène par la succession de N sous-modèles simples... et pour chaque sous-modèles j'ai plusieurs alternatives en termes de précision, spécificité et/ou temps de calcul.
Je cherche donc une structure (sous forme de classes/objets ?) qui me permette d'avoir cette modularité, et éventuellement de coller par après une interface là-dessus (pas prioritaire).
En espérant avoir été suffisamment explicite
Marsh Posté le 24-03-2010 à 11:54:15
Je te recommande ce très bon bouquin sur les designs patterns : http://www.amazon.fr/Design-patter [...] 2841773507
C'est des modélisations Objet de cas classiques. Y'en a forcément un dans le tas qui collera à ton besoin : http://fr.wikipedia.org/wiki/Patron_de_conception
http://abrillant.developpez.com/tu [...] roduction/
Marsh Posté le 24-03-2010 à 12:01:42
Thx, c'est effectivement le genre de référence que je cherche...
Marsh Posté le 28-03-2010 à 23:04:46
Salut,
J'ai bossé en stage l'an dernier sur une appli' de simulation numérique pour un laboratoire qui fait un peu ce que tu veux faire j'ai l'impression. C'est un projet open-source, donc tu peux voir comment ils ont implémenté le système de modèle et leur résolution. Tu peux aussi prendre contact avec les responsables du projet via leur salon IRC, le sourceforge, etc. Le projet se nomme VLE (Virtual Laboratory Environment), tu peux y accéder par http://www.vle-project.org/wiki/Accueil ou http://sourceforge.net/projects/vle/ .
Personnellement je travaillais sur l'interface graphique, donc je ne serais pas d'une grande aide concernant les réelles problématiques d'implémentation.
PS: si les liens sont considérés comme du spam je les retirerais (mais c'est des projets open source, il n'y a pas d'histoire de rémunération ici).
Marsh Posté le 24-03-2010 à 10:26:21
Je bosse dans un labo universitaire dans lequel nous avons régulièrement recours à la simulation informatique pour modéliser des phénomènes physiques...
On dispose de plusieurs softs propriétaires, ainsi que des modèles développés en interne...
Ces derniers commencent à accuser leur âge et n'évoluent plus trop actuellement. Or, je trouve qu'ils ont un réel intérêt scientifique et pédagogique et voudrais les remettre à jour.
C'est là que j'ai eu la bonne idée de me plonger dans le code source
Il y a pèle-mèle du C, du pascal, du VB 5.0, voire de temps en temps du FORTRAN ou du basic...
Et faut imaginer la qualité du code, pondu par des chimistes voici 15 ans pour certains, à grands coups de variables globales au nom barbare, d'#include de fichier *.c sans headers, etc...
Bon, l'essentiel n'est pas vraiment le code, mais les modèles physiques qu'il y a derrière et de ce côté là ça va, c'est relativement bien documenté...
Grossièrement, un modèle se décompose généralement en la succession de plusieurs sous-modèles "simples" (e.g. une équation d'état pour un fluide...) qui prennent en entrée les sorties du sous-modèles précédent (e.g. les conditions de température et de pression dans le système), avec des itérations et tout le bazar...
J'en viens donc à ma question:
Je travaille essentiellement dans d'autres projets en C++ et en python, et je voudrais adapter (voire réécrire from scratch en partant des modèles physiques) ces softs à la POO...
Actuellement c'est plutôt du procédural qui correspond bien à la vision monolithique et relativement statique à l'origine des modèles... mais je voudrais en faire qqchose de beaucoup plus modulaire, avec par exemple la possibilité de remplacer un sous-modèle B par un B' dans une séquence de calcul A->B->C, ou rajouter une étape D, etc selon le contexte...
Autant pour des gui, des systèmes d'accès à des données... l'approche objet ne me pose pas de problème, autant ici j'ai un peu de mal à voir sous quel angle aborder le problème.
Est-ce que vous avez des conseils/remarques/références sur l'utilisation d'une approche OO dans ce genre de modélisation ?
Après réflexion, je pense que la priorité est de s'attaquer au structures de données que partagent les sous-modèles, avant d'implémenter les équations qui les utiliseront... et à ce sujet, je me demandais comment représenter une équation dans une classe ?
Merci
---------------
Counting all the assh*les in the room, well I'm definitely not alone...