Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2008:02_07

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 dernier OnceFlag 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 en material 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 LOL.

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

commit/2008/02_07.txt · Last modified: 2016/03/30 15:23 (external edit)