====== Commit 2008-02-11 ======
===== Modifs =====
==== ElementProperties partagés ====
* Ils sont maintenant gérés par compteurs de reference/DISOWN. Ca permet de clarifier les choses dans Interaction et éviter une copie inutile. J'ai supprimé également le système ''shareProperty'' qui était utilisé pour l'adaptation de pression (c'est maintenant inutile puisque les propriétés sont automatiquement partagées.
Autrement dit, vous pouvez écrire ceci:
prp = ElementProperties(Volume2DElement)
interactionset(99).addProperty(prp)
prp.put(MATERIAL, 1)
prp.put(STIFFMETHOD, STIFF_NUMERIC)
prp.put(CAUCHYMECHVOLINTMETH, VES_CMVIM_SRIPR)
del prp # facultatif
au lieu de:
prp = ElementProperties(Volume2DElement)
prp.put(MATERIAL, 1)
prp.put(STIFFMETHOD, STIFF_NUMERIC)
prp.put(CAUCHYMECHVOLINTMETH, VES_CMVIM_SRIPR)
interactionset(99).addProperty(prp)
del prp # facultatif
Dans le premier cas, le ''del prp'' supprime l'objet ''prp'' qui a été copié lors du ''addProperty''.
Dans le deuxième cas, le ''del prp'' supprime simplement ''prp'' du dictionnaire python local sans appeler le destructeur.
Les deux cas sont maintenant équivalents! Auparavant, le premier placard de code ne modifiait pas les propriétés assignées à l'interaction puisque celle-ci avait fait discretos une copie. On se retrouvait donc avec un objet qui était toujours là mais qui ne servait à rien et pouvait être source d'erreurs.
J'ai modifié ''cont2'' histoire de tester cette manière de faire qui est beaucoup plus souple.
==== LoadAdaptationManager ====
J'ai nettoyé le ''LoadAdaptationManager'' pour y voir plus clair. je suis maintenant presque certain qu'il est plein de bugs. Pour fêter ça, j'ai déplacé le contenu de ''ElementPropertiesSet'' (une autre classe bien pourrie qui est utilisée uniquement dans le cas de l'adaptation de pression) dans ''LoadAdaptationManager''.
==== Nettoyage du code ====
* Quelques modifs de forme.
* Suppression de ''Element2DTemplate.*'' et ''Element3DTemplate.*'' qui étaient identiques (ces fichiers séparés se justifiaient quand les compilateurs C++ merdouillaient les variables statiques dans des fonctions template; c'est plus le cas).
===== Projet ======
Ajouter/supprimer les fichiers ci-dessous.
===== Fichiers ajoutés/supprimés ======
mtElements/ElementTemplate.cpp added
mtElements/ElementTemplate.hpp added
mtElements/Element2DTemplate.cpp deleted
mtElements/Element3DTemplate.cpp deleted
mtElements/Element2DTemplate.h deleted
mtElements/Element3DTemplate.h deleted
mtElements/ElementTemplate.inl deleted
oeFEMBase/ElementPropertiesSet.cpp deleted
oeFEMBase/ElementPropertiesSet.h deleted
--- //[[r_boman@yahoo.fr|Romain BOMAN]] 2008/02/11 10:04//