Table of Contents
Commit 2007-08-03
Modifs
Inversion Domain <=> Metafor
Pour permettre une meilleure répartition des objets dans Metafor et rendre certains plus génériques, j'ai modifié la dépendance entre Domain
et l'analyse Metafor
.
Avant, l'idée principale est de créer un Domain
et de lui faire créer une analyse Metafor par un domain.setAnalysis
. Conséquence directe: le Domain
dépend explicitement de Metafor
. Il n'est donc pas concevable de créer un Domain
pour un autre type d'analyse (élasticité linéaire pour les X-FEM, 'lubri' pour la future lubri, etc). De plus, d'un point de vue informatique, Domain
(un conteneur d'objets génériques) est lié à la même lib que Metafor
(un conteneur d'objets très spécialisés).
Plus tard, l'idée principale est de créer une analyse (Metafor
pour l'instant). Je compte donc séparer Domain
et Metafor
pour que l'analyse Metafor soit un choix parmi d'autres. On peut donc conserver uniquement un lien de type Analysis
entre le Domain
et Metafor
.
Pour ce commit, j'ai fait une première étape qui consiste à changer dans tous les cas-tests la manière dont est créé le Domain
. Le jeu de données (module python) contient un objet prioncipal qui est metafor
et le domaine est accédé par un metafor.getDomain()
mais n'a plus besoin d'être une variable globale du module. C'est metafor
qui maintenant est récupéré par la routine meta
via un module.getMetafor(p)
qui remplace le module.getDomain(p)
où p
sont les paramètres.
En résumé
Avant:
domain=Domain() domain.setAnalysis(METAFOR_ID) metafor=domain.getMetafor()
Maintenant:
metafor=Metafor() domain=metafor.getDomain()
Créer un test "à la Luc"
Je vous conseille cette nouvelle méthode (nombreuses variantes possibles):
metafor=None def getMetafor(p={}): global metafor if not buildMetafor(p) return metafor def parms(p={}): d = {} d['L'] = 400. # valeur par defaut d.update(p) return d def buildMetafor(p={}): global metafor p = parms(p) metafor = Metafor() domain = metafor.getDomain() ...
Amélioration battery.py
Vu que j'ai du modifier tous les cas-tests, j'ai essayé d'améliorer battery.py
(le script de batterie) pour me faciliter la tâche.
- Possibilité d'utiliser des wildcards sous DOS: “
battery clean apps\complex\shape*
” par exemple. - Ajout d'un javascript qui permet, sous Windows, de voir et éditer directement les fichiers d'un test qui merdouille à partir de la page HTML de diff. Pour rappel, celle-ci peut être créée (
dans apps\verif
) par unbattery.py diff
après avoir lancé la batterie.
Fichiers ajoutés/supprimés
— Romain BOMAN 2007/08/03 09:23