Ajout de la visualisation des champs discontinus (valeurs par noeuds et par mailles) tels que le champ de contraintes
Ajout de visualisation 3D de champs 2D (voir figure): la valeur z est la valeur visualisée. C'est très pratique pour pouvoir étudier les shémas de convection en ALE ou pour mieux repérer les grands gradients. J'ai ajouté des beaux boutons dans Qt.
ALE: Pour l'ALE, je travaille principalmeent dans le but de faire fonctionner tous les algorithmes avec tous les types de situations (éléments EAS, thermiques, schémas d'intégration dynamique, futurs éléments de coques, etc). Pour arriver à ça, beaucoup de problèmes se posent. J'ai donc choisi de privilégier la structure du code (en créant beaucoup de "petites" classes) plutôt que la mémoire (pour rappel, il y a encore peu de temps, tout l'ALE était géré par l'objet AleMethod (qui est presque vide aujourd'hui). Bref, je vais supprimer toutes les routines volumes finis dans l'élément (je faisais ça uniquement pour ne pas dupliquer le maillage). C'était débile parce que c'est contraire à la philosophie "orienté objet". Autrement dit, je vais créer des objets VF (ou plutôt étendre ce qui existe - la classe InriaCell).
Modification du ReZoner de Giuliani pour permettre le fonctionnement sur des objets Group.
Ajout d'un nouveau type de ReZoner 2D : AngleReZoner. C'est basé sur un papier que j'ai trouvé sur le web. Ca marche très bien et ça donne de très bon résultats (mailleurs que Giuliani dans certains cas). J'aimerais porter ce truc en 3D pour remailler des surfaces courbes. Ca a été fait par un gars qui, malheureusement, n'a pas l'air de maitriser l'anglais et je pige pas son papier (pour moi il manque des mots dans ses phrases).
Debug de l'AuxiliaryMeshBuilder2 qui va permettre de créer le maillage auxiliaire volumes finis de manière géométrique (en utilisant la géométrie des mailles). C'est cette classe qui m'a embarqué dans la création de la topologie et du découplage des concepts mailles/éléments. Cette classe sera renommée et remplacera AuxiliaryMeshBuilder (toujours utilisée aujourd'hui) lorsqu'elle aura été testée avec les algorithmes de convection et surtout optimisée.
correction de getGaussPointPosition dans l'élément.
Création des classes InriaCellNodal et InriaCellGP, dérivant de InriaCell (classe de base des VF). Ca va me permettre de découpler les EF des VF comme expliqué plus haut.
Géométrie
Ajout des classes QuadWire, QuadSide, HexaSkin, HexaVolume définissant des opérations "optimisées" pour la topologie de nos éléments quadrangulaires et hexaédriques. Idéalement, ce serait bien de faire toutes les intégrations purement géométriques dans ces classes. C'est le cas, par exemple du calcul du volume de l'élément qui peut difficilement être écrit en toute généralité pour un Volume mais qui est relativement simple à écrire pour un hexaèdre. Mon but, ici, est de déplacer les fonctions getArea() de l'élément vers la géométrie. Ces classes sont définies et utilisées mais getVolume() (anciennement getArea() ) n'est pas encore utilisé.
Ajout de la classe VolumeTopology et de la fonction Geometry::linkVolumesToPoints(). Ce sont les liens (downwards adjacencies) qui permettent à un Volume de boucler efficacement sur ses Points (ou plutôt ses sommets). Dans le cas d'un HexaVolume, ces points seront bien triés (dans l'ordre "Bacon"). C'est pas encore le cas...
Modification des QuadBuilder et HexaBuilder (les classes qui créent les mailles) pour qu'elles utilisent les nouveaux objets QuadWire, HexaSkin, etc.
Autre:
Ajout d'un constructeur dans l'intégrateur QuadBiLin2DIntegrator (un intégrateur de Luc) pour pouvoir l'utiliser facilement lors du calcul du volume d'un quad axisym.
Ajout de OnFileDataMatrix::toAscii(). Exportation des "matrices résultats" au format ASCII (indispensable pour Matlab).
Debug de toolbox.utilities.rebuildCurves : cette fonction python permet de regénérer des courbes à partir des facs.
Exportation des courbes en ASCII (faut-il encore exporter vers Matlab?? - pour moi, c'est inutile)