Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2017:10_30

Commit 2017-10-30

Stabilité

  • Correction d'un bug macOS qui empêchait les captures d'écran (il manquait une lib VTK).
  • Tentative de meilleure synchronisation des threads lors de l'initialisation de la fenêtre Metafor. J'avais remarqué que dans certains cas, le thread python démarre “trop vite” et envoie des commandes à l'interface graphique qui n'est pas encore complètement initialisée. En conséquence, l'arbre PYTHONPATH ne s'affiche pas et impossible de récupérer la sauce sans redémarrer Metafor! Une QWaitCondition et un QMutex avait déjà été mis en place mais j'ai essayé de retarder encore plus le thread python pour que le problème n'apparaisse plus. Si vous aviez encore le cas après ce commit, dites-le moi.

Tutoriels

J'ai mis un peu d'ordre dans les tutoriels pour que les étudiants s'y retrouvent mieux.

  • Tout d'abord, j'ai renommé tutorial1.py en tutorial.py. C'est l'unique tutoriel qui doit sauter aux yeux des étudiants quand ils cherchent par où commencer. Ce fichier fait référence à ma présentation powerpoint.
  • Les cas tests suivants ont été déplacés dans un nouveau dossier apps.meca0023 (advanced solid mechanics):
    • cylinderUnderExternalPressure
    • cylinderUnderInternalPressure
    • rotatingCylinder
    • sphereUnderInternalPressure
    • tutorial0
    • tutorial2
    • tutorial3
  • Les cas-tests écrits par Florian Boutenel pour comprendre la thermique dans Metafor ont été introduits dans la batterie et mis dans le dossier tutorials. J'ai commité également des fichiers scilab qu'il a écrits pour post-traiter les résultats. Ce sont de très bons exemples pour apprendre à écrire un cas thermique, chaque difficulté étant prise séparément.
    • conduction
    • convection
    • dilatation
    • thermalcontact
    • thermoplasticity
  • Des nouveaux cas-tests relatifs aux projets du cours de grandes défos ont été mis dans oo_nda. L'idée est, à terme, de mettre la solution de tous les projets dans la batterie (ces projets peuvent devenir des références d'utilisation de Metafor vu qu'ils traitent des cas concrets souvent liés à une publication scientifique ou un bench reconnu):
    • meca0464.tests.p20_rubberseal: écrasement d'un joint hyperelastique (bench COMSOL).
    • meca0464.tests.p26_snapunit: test de traction sur un “métamatériau”.

Modification de tutorial.py

Suite à mes labos “grandes défos”, j'ai pu constater quelques problèmes lors de la présentation du tutoriel: par exemple, j'ai dû expliquer à la plupart des grouypes individuellement comment changer de schéma d'intégration temporelle, ou comment mettre une loi de frottement de Coulomb au lieu de la loi collante (qui n'aide pas à converger quand il doit y avoir du glissement dans le test envisagé), etc.

J'ai donc décidé de modifier le tutoriel pour le rendre plus complet, sans le rendre trop complexe.

  • utilisation d'une intégration temporelle dynamique,
  • paramétrisation du temps final de simulation en fonction de la vitesse d'écrasement,
  • augmentation du nombre de facs,
  • utilisation d'un déplacement de l'outil plus complexe qu'une simple rampe (je modélise maintenant le retrait de l'outil et le retour élastique qui en résulte),
  • utilisation d'une loi de frottement de Coulomb au lieu de la loi collante,
  • affichage d'une fenêtre de visu de courbe.

Les points qui bloquent encore et qui ne sont toujours pas intégrés au tutoriel (pour éviter de le rendre trop complexe):

  • cas-test avec 2 matériaux différents (on me demande souvent comment “coller les maillages” dans ce cas),
  • cas-test axisymétrique,
  • sélections de noeuds.

Je suis en train d'adapter le powerpoint.

GUI

  • Je crois avoir corrigé le fait qu'une sélection de texte dans la fenêtre de sortie de Metafor change définitivement la couleur du texte.
  • Par défaut, le splash screen et la confirmation “Are you sure to quit?” sont maintenant désactivés.

MKL-rt

  • Possibilité de ne pas linker avec MKL-rt (choix de la bibliothèque de threading utilisée au runtime). Définition d'une option MKL_USE_MKLRTdans le CMakeLists.txt pour faire le choix. Sous macOS, je n'arrive pas à déplacer une version de Metafor qui est liée à MKL-rt. L'exécutable cherche désepérément des bibliothèques qui se trouvent pourtant dans le DYLD_LIBRARY_PATH… Mystère. J'utilise donc un link explicite sous macOS.

boman 2017/10/30 08:58

commit/2017/10_30.txt · Last modified: 2017/10/30 10:38 by boman