inl
) des nouveaux fichiers du commit précédent.OeIndex
. Instanciation de ce template pour DofIndex
, PartDofIndex
, PartIndex
et DBIndex
.Bidon
en Dummy
(reste BidonDammage
de PP)Lorsque j'ai débugué le Fac pour la création des Fields, j'ai eu beaucoup de mal à comprendre ce qui était sauvé sur disque et où les problèmes se trouvaient. Je suis passé alors en mode “Texte” mais la tâche restait difficile vu que la sortie est, en fait, quelques très longues lignes de texte.
Pour éviter d'avoir ce genre de problème, j'ai modifié la sortie du Fac texte (TextArchive
) pour qu'elle soit réellement exploitable lors de phases de debug. Pour structurer les données et traduire la hiérarchie des objets dans un fichier, j'ai choisi le format XML qui a l'avantage d'être un standard reconnu.
Pour l'écriture des données au format XML, j'ai ajouté du code dans les routines de sérialisation des objets.
archive.begin(className()); archive << ... // [variables de l'objet] archive.end(className());
Elles permettent d'écrire les tags XML. Ces appels n'influencent pas l'écriture binaire du Fac.
J'ai ajouté aussi une macro et des templates pour que la commande:
archive << ARCITEM(version);
écrive le nom de la variable dans les tags et que la bonne fonction d'écriture soit appelée en fonction du type de la variable.
Le résultat ressemble à ça:
<Archive> <head> <version> 13 </version> </head> <MetaFac> <Metafor> <TdFieldSavedValues> 1.27738386E+000 2.71438585E+002 </TdFieldSavedValues> <TimeStepManager> 3.37278283E-002 1.06212215E-001 35 34 </TimeStepManager> <IterationManager> 2 106 </IterationManager> <IterationManager> 0 0 </IterationManager> </Metafor> <Step> 2.00000000E+000 14 <DBSet> TXTYTZ RE 128 0.00000000E+000 0.00000000E+000 0.00000000E+000 0.00000000E+000 0.00000000E+000 0.00000000E+000 0.00000000E+000 0.00000000E+000 0.00000000E+000 0.00000000E+000 0.00000000E+000 0.00000000E+000 ...
C'est pas encore l'idéal (l'indentation n'est pas encore toujours respectée) mais ça a déjà une meilleure tête.
Et ça peut être ouvert avec des logiciels du type Bonfire Studio:
Tiens, ça ressemble à l'ObjectBrowser…
(Une idée serait de lire les objets de Metafor à partir de l'ObjectBrowser avec un objet Archive
…)
La difficulté est la relecture du XML. C'est vraiment pas pour les tapettes… Faut-il utiliser une bibliothèque toute faite (parsers SAX, DOM de Qt par exemple)? L'avantage c'est que le format peut être rendu très libre. L'inconvénient c'est qu'il est difficile alors de maintenir un Fac binaire avec la même interface…
Je crois que ce n'est pas nécessaire. Actuellement, les tags doivent être seuls sur leur ligne et ça fonctionne. Plus tard, il faudra essayer d'étendre le système si le XML est régulièrement utilisé.
J'ai séparé les classes Archive
d'écriture et de lecture. Ca permet de ne pas se tromper (par exemple, le matériau thixo écrivait sur le Fac lors de la lecture…
Le nouveau Fac est incompatible avec l'ancien:
La config VizWin
(vizwin.conf
) a également changé de format. Supprimez le fichier de votre répertoire de travail si vous en avez un.
#pragma warning( disable : 4018) // signed/unsigned mismatch #pragma warning( disable : 4267) // conversion de 'size_t' en 'int'
mtGlobal
, gen4
, gen4gui
.A Faire:
size_t
.UserNo
⇒ size_t
au lieu de int
(pas direct car UserNo=-1 est utilisé).Certains fichiers ne sont pas splittés. D'autres devront passer de Oofelie à Metafor.
mtFEMBase/DofType.cpp added mtFEMBase/DofTypeMask.cpp added mtFEMBase/DofTypeMask.h added mtKernel/FieldList.h added (+) mtFEMBase/DofType.inl added mtFEMBase/DofTypeMask.inl added mtKernel/DBPointer.inl added mtKernel/Field.inl added mtKernel/DBIndex.cpp deleted mtFEMBase/PartIndex.h deleted mtKernel/KeyList.h deleted apps/ale/pstArcelor3d.py deleted apps/qs/pstAbaqus2d.py deleted
oeFEMBase/Locel.cpp added oeFEMBase/Locinv.cpp added oeFEMBase/PartDofList.cpp added oeFEMBase/Locel.h added oeFEMBase/Locinv.h added oeFEMBase/LocinvItem.h added oeFEMBase/PartDofIndex.h added oeFEMBase/PartDofList.h added oeFEMBase/PartIndex.h added (+) oeFEMBase/Locel.inl added oeFEMBase/Locinv.inl added oeFEMBase/LocinvItem.inl added oeFEMBase/PartDofList.inl added oeKernel/DBValue1D.inl added oeKernel/DBValue.cpp deleted
arcelor added arcelor/__init__.py added arcelor/tests added arcelor/tests/__init__.py added arcelor/tests/pstAbaqus2d.py added (+) arcelor/tests/pstArcelor3d.py added (+)
— Romain BOMAN 2007/11/21 09:14