Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2007:08_03



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)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 un battery.py diff après avoir lancé la batterie.

Fichiers ajoutés/supprimés



Romain BOMAN 2007/08/03 09:23

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