Table of Contents
Commit 2008-02-07
Modifs
Variables statiques
Ce nettoyage nous permettra de lancer plusieurs cas-tests en série de manière plus sécurisée et, à terme, de mélanger des analyses différentes sans risques (une analyse de lubri par exemple - soyons fou!). Un autre but de ce nettoyage est de siminuer le nombre de updateShortcuts
dans le code des éléments pour au final gagner du temps CPU.
Déjà fait:
- Typage de
getMetaElShcuts
dans les éléments. Tous les shortcuts sont donc correctement typés (leur gestion dans l'élément de volume est un peu limite mais bon…). - Suppression des shortcuts statiques au profit d'un shortcut contenu dans l'interaction. Le shortcut est alloué par le premier élément de l'interaction lorsque celle-ci lui demande (lors du
generateElements
). - Suppression des dernières variables statiques des éléments (en particulier les
onceflag
). Il ne reste plus que des variables statiques qui sont utilisées pour éviter des allocations/désallocations de variables temporaires (c'est-à-dire les moins pires statiques).
Reste:
- comprendre les “subtilités” du
initialiseShcuts
(et supprimer le dernierOnceFlag
au niveau des shortcuts). - faire le point sur les mises à jour (
updateShortcuts
) - adapter le copy constructueur d'
Interaction
(j'ai laissé un mem leak pour l'instant). - renommer certaines variables (
massMater
enmaterial
par exemple) pour améliorer la lisibilité (c'est pas difficile vu l'état actuel).
CPU:
Coté CPU, l'accès au shortcut via l'interaction n'est pas pénalisant. On observe même une légère amélioration du CPU sur toutes les machines (que je n'explique pas).
Correction bug thermomec
Si certains se demande à quoi sert ce que je fais: voila un beau bug que je viens de trouver dans le thermomec. Il apparait lorsqu'il y a plus d'une interaction. Précédemment, vu que chaque interaction partageait un seul et unique shortcut, il était temps que tout soit bien synchronisé… Visiblement ce n'était pas le cas, malgré les centaines d' updateShortcuts
qui trainent un peu partout:
Cas test: (parmi d'autres): apps.monosMaterials.tmEvpIsoFast2dAxiCis
: il s'agit de 5 monos avec 5 matériaux différents. Donc anciennement 1 seul shortcut pour 5 dans la nouvelle version). Je montre ci-dessous les valeurs relatives à un des monos avec OFFI et NEW (cette version). Ensuite, j'ai modifié le test pour ne simuler qu'un seul mono et j'ai relancé le test avec les 2 versions.
OFFI | NEW | OFFI (1 seul mono) | NEW (1 seul mono) | |
---|---|---|---|---|
deltaTempPoint43 | 13.6546 | 23.5852 | 23.5846 | 23.5846 |
devSigXXPoint43 | 271.318 | 272.544 | 272.54 | 272.54 |
eplPoint43 | 0.184151 | 0.185669 | 0.185661 | 0.185661 |
Bref, rien de grave: une erreur de près de 100% sur la variation de températiure finale .
J'ai pas creusé pour comprendre d'où venait précisément cette erreur. Certainement un updateShortcut
qui manque quelque part… De toutes façons, c'est corrigé.
Faudrait maintenant voir si cette solution est bien la bonne. Je laisse ça aux spécialistes du thermomec.
Nettoyage du code
- Suppression des tabs, espaces superflus, etc à l'aide de Powergrep. Désolé pour l'update mais le code en avait bien besoin…
- Nettoyage des constructeurs virtuels dans les pierrepolades.
Projet
Fichiers ajoutés/supprimés
— Romain BOMAN 2008/02/07 10:40