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.
Avant:
domain=Domain() domain.setAnalysis(METAFOR_ID) metafor=domain.getMetafor()
Maintenant:
metafor=Metafor() domain=metafor.getDomain()
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() ...
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.
battery clean apps\complex\shape*
” par exemple.dans apps\verif
) par un battery.py diff
après avoir lancé la batterie.— Romain BOMAN 2007/08/03 09:23