====== 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 --- //[[r_boman@yahoo.fr|Romain BOMAN]] 2007/06/18 08:54//