Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2007:06_18



Commit 2007-06-18

Modifs

Nouvelle gestion du FAC

Il ne s'agit pas (encore) de modifier le FAC actuel pour le rendre plus performant. Le format du FAC n'a pas changé et tout reste compatible avec les anciens FACs.

J'ai juste améliorer la gestion externe des fichiers FAC en transférant les opérations relatives au système de fichier de MetaFac dans une classe python (nommée toolbox.fac.FacManager). Ca me permet d'utiliser les outils pythons (glob.glob, os, sys.path, etc) qui sont drôlement plus simples et portables que leurs équivalents en C.

Résumé des modifs:

  • :getTimeStepNo() retourne maintenant le “vrai” numéro du step (et pas le numéro “réduit” 0,1 ou 2). Ca permet de facilement retrouver ce numéro dont on n'a besoin uniquement pour le FAC ou les infos (print ou fichier res).
  • Suppression de MetaFac::loadBalanced(), saveShiftIe(), … et remplacement par loadCustom(“eq”), saveCustom(“sie”). La classe MetaFac a été très fortement réduite (suppression de tout le code non portable). Son interface load/save se résume à 3 groupes de fonctions:
    • Groupe #1:
      • load(nt) : charge le FAC du pas de temps nt.
      • save() : sauvegarde le FAC du pas de temps actuel.
    • Groupe #2:
      • load(string) : charge un FAC donné par son nom de fichier.
      • save(string) : sauvegarde un FAC donné par son nom de fichier.
    • Groupe #3:
      • loadCustom(string) : charge le FAC custom du type step_string.bfac.gz (exemple: step_neq.bfac.gz pour le 88888).
      • saveCustom(string) : sauvegarde un FAC custom.
  • Création d'une nouvelle classe FacManager.
    • Ne change rien à l'utilisation externe (loadFac, saveFac, makeAnimation). J'ai juste un peu bidouillé ces anciennes fonctions pour que tout marche avec les nouvelles fonctionnalités. En particulier, il est possible de charger un FAC texte sans spécifier son type.
    • En interne, tout est écrit en python (pour la simplicité et portabilité) – voir module toolbox.fac
    • Chargement automatique de tous les types de facs (autodétection d'après l'extension)
    • Possibilité de charger des FACs de type “neq” (ancien 88888) ou autres en passant une string au lieu du numéro: loadFac('cont2','neq') ⇒ charge la dernière config calculée. loadFac('cons_ie_ln', 'sie') ⇒ charge des ludovicnoulseries.
    • La limite des 999999 pas de temps supprimée! (qui veut tester le million de pas de temps?)
  • Possibilité de charger des FACs textes (*.tfac) ou non zippés (*.bfac) à partir de la console python (par le menu/loadFac)
  • La commande vizu affiche maintenant toujours le titre (pas, temps courant, temps total, etc).

Exemples: (commandes FAC dans toolbox.utilities)

loadFac('apps.qs.cont2'); vizu() Charge le dernier FAC (quel que soit sont type) et le visualise
loadFac('apps.qs.cont2','neq') Charge le fichier neq (ancien 88888)
makeAnimation('cont2') Fait une anim de 'cont2'
loader = FacManager(domain) Crée un MetaFac python (nouvel objet)
loader.erase('neq') Vire le neq
loader.erase(45) Vire le pas 45
loader.eraseAllFrom(45) Vire les pas 45 et suivants (utile pour restart)
loader.load('workspace\cont2\step_000010.tfac') Charge le fichier spécifié (ça marche pour autant que le loader ait été construit sur cont2 – logique!)
rebuildCurves('cont2') Recrée les courbes a partir des FACs de cont2
convertFac('cont2', type='t',zip='n') Transforme les FACs en FACs ASCII (ancien bfac2tfac amélioré puisqu'il marche aussi dans l'autre sens)
saveFac() Sauve la config courante dans un FAC (le numéro est déduit du pas de temps actuel)

Batterie

Petites améliorations:

  • Le rapport HTML contient en entête le nombre de diffs de chaque fichier + des liens vers les tableaux.
  • Les tests présentant plusieurs lignes résultats identiques (par exemple les restarts qui ont tout en double ou même triple) sont maintenant diffifiés correctement. J'ai ajouté un index entre parenthèses dans le diff. On pourra donc facilement voir si la deuxième partie d'un restart a planté ou pas!

Fichiers ajoutés/supprimés

toolbox/fac.py	added	 	 		

Romain BOMAN 2007/06/18 08:54

commit/2007/06_18.txt · Last modified: 2016/03/30 15:23 (external edit)