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...