|
 |
|
|
17/12/2003 |
By LPX |
|
|
|
|
|
|
Exportation modifiée en liaison avec
les modifications de la gestion des courbes.

Ajout de prefixes "virtual" a
quelques fonctions de la classe oeFunct (afin de pouvoir les dériver).
Restructuration de la gestion des courbes & vecteurs :
Classes DataVector :
Les classes de la structure DataVector contiennent des listes de chiffres
(stoquées en mémoire : InMemoryDataVector ou partiellement sur
disque : OnFileDataVector (formellement la classe de Romain VectorOnFile)).
L'interface commune de ces classe est définie dans la classe DataVectorBase
(dérivant de Physet et de NumberedObject) et peuvent
être regroupée dans un set type DataVectorSet (dérivant
de NumberedObjectSet).
La classe Metafor contient un pointeur vers DataVectorSet : dataVectorSet
(accessible via la commande metafor.getDataVectorSet()) dans lesquelles
sont regroupées par default tous les vecteurs extraits du calcul (avec
le numéro défini dans le valueManager). A ce propos,
la numérotation des valeurs extraites a été déplacée
de l'extracteur vers le vecteur stoquant les resultats (l'extracteur n'a pas
besoin de numero, le vecteur bien).
Classes DataCurve :
Les classes de la structure DataCurve gère elle des courbes
(abscisse - ordonnées).
Trois types de courbes existent :
- FunctDataCurve : gère une liste de couples de coordonnées
(idem Funct).
- VectorDataCurve : gère une courbe définie par un
vecteur d'abscisse et un vecteur d'ordonnée quel qu'en soit le type
(généralisation de CurveOnFile).
- SinusDataCurve : Premier essai de gestion d'une fonction analytique
: Y= A sin (Omega X + Phi).
(La visualisation s'effectuant sur une discrétisation de la fonction
paramétrisable : abs min, abs max, discretisation/cycle, discrétisation
totale (entre les bornes))
- DataCurveBase : définissant l'interface commune aux DataCurves
Toutes dérivent de Physet, NumberedObject et OEFunct
(de manière à pouvoir les utiliser comme entrée de données
pour des évolutions de mise en charge, de loi matérielle,...)
On pourrait "brutalement" bypasser la dérivation OEFunct, mais
c'est pas fait pour assurer un "compatibilité" avec les développements
futurs (??) de OE.
ATTENTION : SUITE AU PEU DE TYPAGE DE L'INTERPRETEUR, UNE FONCTION castToFunct()
A ETE CREE DE MANIERE A ASSURER QUE C'EST LA DERIVATION QUI NOUS INTERESSE QUI
EST PASSEE DANS L'INTERPRETEUR. (L'usage de cette fonction n'est plus indispensable
dans les classes existantes (Romain a trouve un truc pour récupérer
le bon type dans l'interpreteur), mais existe tjrs au cas ou (ca serait viré
dans I_Material)).
Il est possible de rassembler des courbes dans un DataCurveSet pour
les visualiser (le naming des courbes, axes, graphiques, sera retravaillé
lorsque l'on aura upgradé sur la version courante Oofelie pour bénéficier
de la lecture des strings dans l'interpreteur). Le menu bWin permettant déjà
de renommer les axes, graphiques,...
Un pointeur vers un DataCurveSet existe dans la classe Metafor et
est accessible via la commande metafor.getDataCurveSet().
ATTENTION : CETTE CLASSE GERE DES COURBES. L'USAGE EN TERME DE FONCTIONS SE
FAIT EN CONNAISSANCE DE CAUSE DE L'UTILISATEUR,...
Test de visualisation des possibilites des DataCurves introduit dans toolbox.d/surround.d/dataCurveVector.e
Fonctions Objectives :
Le but ultime de cette réorganisation était de pouvoir utiliser
les courbes en tant que fonctions objectives.
Deux fonctions ont été ajoutées :
- DiffDataCurveObjectiveFunction : effectuant une mesure de le différence
entre 2 fonctions en calculant l'air entre ces 2 fonctions
- IntegralDataCurveObjectiveFunction : calcule l'intégrale d'une courbe
entre des bornes données
Attention, pour pouvoir utiliser les fonctions objectives, il faut que les
courbes fassent partie du DataCurveSet de Metafor (metafor.getDataCurveSet())
étant donné qu'elle ne sont repérées que grace à
leur numéro (interface unique des données des fonctions objectives).
Added Files:
- oo_meta/oo_extractors/DiffDataCurveObjectiveFunction.cpp
- oo_meta/oo_extractors/DiffDataCurveObjectiveFunction.h
- oo_meta/oo_extractors/IntegralDataCurveObjectiveFunction.cpp
- oo_meta/oo_extractors/IntegralDataCurveObjectiveFunction.h
- oo_meta/oo_kernel/DataVectorBase.cpp
- oo_meta/oo_kernel/DataVectorBase.h
- oo_meta/oo_kernel/DataObserver.h
- oo_meta/oo_kernel/InMemoryDataVector.cpp
- oo_meta/oo_kernel/InMemoryDataVector.h
- oo_meta/oo_kernel/OnFileDataVector.cpp
- oo_meta/oo_kernel/OnFileDataVector.h
- oo_meta/oo_kernel/DataVectorSet.cpp
- oo_meta/oo_kernel/DataVectorSet.h
- oo_meta/oo_kernel/DataCurveBase.cpp
- oo_meta/oo_kernel/DataCurveBase.h
- oo_meta/oo_kernel/FunctDataCurve.cpp
- oo_meta/oo_kernel/FunctDataCure.h
- oo_meta/oo_kernel/VectorDataCurve.cpp
- oo_meta/oo_kernel/VectorDataCurve.h
- oo_meta/oo_kernel/SinusDataCurve.cpp
- oo_meta/oo_kernel/SinusDataCurve.h
- oo_meta/oo_kernel/DataCurveSet.cpp
- oo_meta/oo_kernel/DataCurveSet.h
- oo_meta/oo_kernel/i_/I_DataVectorBase.cpp
- oo_meta/oo_kernel/i_/I_DataVectorBase.h
- oo_meta/oo_kernel/i_/I_InMemoryDataVector.cpp
- oo_meta/oo_kernel/i_/I_InMemoryDataVector.h
- oo_meta/oo_kernel/i_/I_OnFileDataVector.cpp
- oo_meta/oo_kernel/i_/I_OnFileDataVector.h
- oo_meta/oo_kernel/i_/I_DataVectorSet.cpp
- oo_meta/oo_kernel/i_/I_DataVectorSet.h
- oo_meta/oo_kernel/i_/I_DataCurveBase.cpp
- oo_meta/oo_kernel/i_/I_DataCurveBase.h
- oo_meta/oo_kernel/i_/I_FunctDataCurve.cpp
- oo_meta/oo_kernel/i_/I_FunctDataCure.h
- oo_meta/oo_kernel/i_/I_VectorDataCurve.cpp
- oo_meta/oo_kernel/i_/I_VectorDataCurve.h
- oo_meta/oo_kernel/i_/I_SinusDataCurve.cpp
- oo_meta/oo_kernel/i_/I_SinusDataCurve.h
- oo_meta/oo_kernel/i_/I_DataCurveSet.cpp
- oo_meta/oo_kernel/i_/I_DataCurveSet.h
- oo_meta/oo_viz/vtk/DataCurveSetDrawable.cpp
- oo_meta/oo_viz/vtk/DataCurveSetDrawable.h
Removed Files:
- oo_meta/oo_kernel/CurveOnFile.cpp
- oo_meta/oo_kernel/CurveOnFile.h
- oo_meta/oo_kernel/VectorOnFile.cpp
- oo_meta/oo_kernel/VectorOnFile.h
- oo_meta/oo_kernel/VectorOnFileObserver.h
- oo_meta/oo_kernel/i_/I_CurveOnFile.cpp
- oo_meta/oo_kernel/i_/I_CurveOnFile.h
- oo_meta/oo_viz/vtk/CurveOnFileDrawable.cpp
- oo_meta/oo_viz/vtk/CurveOnFileDrawable.h
Added Tests :
Batterie :
- apps.d/qs_e/dataFunctMonos.e : Test des DataCurves (et indirectement DataVectors)
dans l'introduction des données (chargement, évolution matériaux,
materialLaws,...) + vizualisation (en interactif)
- apps.d/imp_e.d/curvatureRadius2DFobj.e : teste les fonctions objective de
calcul d'un rayon de courbure (2D et 3D)
- apps.d/qs_e.d/dataCurveFobj.e : teste les fonctions objective liées
aux courbes (diff et integrale)
- apps.d/qs_e.d/shape2DObjectiveFunction.e : teste les fonctions objective
comparaison de forme en 2D
- apps.d/qs_e.d/shape2DObjectiveFunction.e : teste les fonctions objective
comparaison de forme en 3D
- + divers calculs de fobjs sur base des fichiers ci dessus (complex.d/....
.t => faut encore que je fasse un système de validation - nettoyage
batterie)
Test "interactif" :
toolbox.d/surround.d/dataCurveVector.e
 |
|
|
|
|
created
:17/12/2003 |
|
modified
: 17/12/2003 |
contact
:L.Papeleux@ulg.ac.be |
|
|
|