commit:2007:06_18
Table of Contents
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 parloadCustom(“eq”)
,saveCustom(“sie”)
. La classeMetaFac
a été très fortement réduite (suppression de tout le code non portable). Son interfaceload/save
se résume à 3 groupes de fonctions:- Groupe #1:
load(nt)
: charge le FAC du pas de tempsnt
.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 typestep_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 by 127.0.0.1