====== Commit 2007-08-13 ====== ===== Modifs ===== ==== Suppression des dépendances Domain/Metafor ==== * ''StrVector'' : la gestion des exceptions de type ''Continue Exception'' (jacobien négatifs, etc) a été déplacée dans ''TimeIntegration'' (fct ''genForce'') * ''Element'' : création d'une couche non-template regroupant l'interface spécifique à l'analyse ''Metafor''. J'ai nommé cette couche ''MtElement'' dont dérive pour l'instant tous les éléments finis. ==== Création d'une nouvelle lib: mtFEMBase ==== Cette nouvelle lib est nécessaire pour: * Permettre les évolutions futures de Metafor. * Supprimer les dépendances cycliques restantes (''mtFEM'' dépend de ''mtMaterials'' par exemple). Les applications visées par Metafor sont de plus en plus nombreuses et très variées (X-FEM, ALE, Lubri?, Remaillage?, etc). Il est donc nécessaire de pouvoir bien séparer les concepts de base (un ddl, un ensemble de matériau, une interaction générique, un EF générique, etc) avec les classes spécialisées (extracteur du nombre de noeuds en contact, interaction de contact, adaptation de pression, ALE, etc). Les classes spécialisées doivent dépendre des classes de base et non l'inverse. Plusieurs exemples: * J'aimerais réintégrer la lubri (on ne rigole pas): si je veux faire ça correctement, j'ai besoin de classes de gestion ddl, de classes mathématiques, de fonctions de forme, etc. Pour l'instant, si je veux faire une fixation, je dois obligatoirement définir une analyse "Metafor" dans ma petite analyse locale 1D de lubri. C'est très lourd et je suis tenté de tout réécrire en version "light" pour la lubri... (ce n'est évidemment pas la meilleure solution). * J'ai programmé Gen4, le mailleur de Sarrate. J'avais besoin de classes géométriques (courbes, contours, etc) mais la lourdeur de l'architecture actuelle (un point demande une DB et, implicitement un ''Domain'' pour fonctionner) m'a poussé à tout réécrire en version "light" pour le mailleur. * Ce serait quand même plus propre de créer une lib pour des grands ensemble de routines tels que "le contact", "l'ALE", etc. Ca permettrait a une personne qui entre dans le code de ne pas lire ces routines si il travaille sur autre chose. Pour ce faire, il faut abandonner l'envie de vouloir regrouper les classes de même type dans des mêmes libs (tous les éléments, tous les matériaux, tous les loadings, tous les extracteurs, etc). C'est la cause principale des liens cycliques qu'on observe. Par exemple, on a un élément de contact dans ''mtElements'' et un extracteur donnant le nombre de neouds en contact dans ''mtFEM''. Conséquence, ''mtFEM'' dépend de ''mtElements''. L'extracteur en question est un extracteur hyper spécialisé (valable quand je fais du contact grandes défo) et je ne doit pas avoir besoin de linker avec lui si je travaille sur un mailleur!! Mon idée est de diviser, dans un premier temps ''mtFEM'' en deux parties: une partie plus ou moins générique (ddls, gestion d'extracteurs basiques, analyse générique, ''Domain'') et une partie métaforienne (je parle ici de "metal forming" au sens large - contact, ALE, grandes defos, etc). Ce n'est bien sûr pas un simple déplacement de fichiers: il faut modifier des classes pour supprimer certains liens qui les rendent trop liées à ''Metafor''. C'était le but des commits précédents. Notez que tous les fichiers d'Oofelie correspondant à ''mtFEM'' deviennent des ''oeFEMBAse''. C'est logique puisque Oofelie se voulait générique. ==== Nettoyage des chargements & C.I. ==== J'ai créé une classe ''LoadingSetBase'' dont dérive ''LoadingSet'' et ''InitialConditionSet'' pour éviter la duplication de code. ===== Projet ===== * créez ''mtFEMBase'', nouvelle DLL (même includes et deps que ''mtFEM'' mises à part les cycliques). Les fichiers sont répartis dans ''oo_meta/mtFEMBase'' et ''oofelie/oeFEMBase''. * ''mtFEM'' dépend de ''mtFEMBase''. La plupart des libs qui dépendent de ''mtFEM'' dépendent aussi de ''mtFEMBase'' (par contre le ''main'' ne dépend plus de ''mtFEM'') * SWIG: modifier les includes de ''_mtFEM'' (j'ai pas encore fait le ''_mtFEMBase'') * ''_mtFEM'' dépend de ''mtFEMBase'' * Clean All / Rebuild! ===== Fichiers ajoutés/supprimés ====== File Text status mtFEMBase added mtFEM/MtElement.cpp added mtFEMBase/Activable.cpp added (+) mtFEMBase/ContactConfigFlag.cpp added (+) mtFEMBase/Element.cpp added (+) mtFEMBase/ElementIDList.cpp added (+) mtFEMBase/ElementIterator.cpp added (+) mtFEMBase/ElementProperties.cpp added (+) mtFEMBase/ElementPropertyIDs.cpp added (+) mtFEMBase/EqualityDofConstraints.cpp added (+) mtFEMBase/EqualityDofConstraintsSet.cpp added (+) mtFEMBase/FixationSet.cpp added (+) mtFEMBase/GpStateBase.cpp added (+) mtFEMBase/InitialConditionSet.cpp added (+) mtFEMBase/Interaction.cpp added (+) mtFEMBase/InteractionSet.cpp added (+) mtFEMBase/Loading.cpp added mtFEMBase/LoadingSet.cpp added mtFEMBase/LoadingSetBase.cpp added mtFEMBase/MaterialIDList.cpp added (+) mtFEMBase/MaterialLaw.cpp added (+) mtFEMBase/MaterialLawIDList.cpp added (+) mtFEMBase/MaterialLawProperties.cpp added (+) mtFEMBase/MaterialLawPropertyIDs.cpp added (+) mtFEMBase/MaterialLawSet.cpp added (+) mtFEMBase/MaterialProperties.cpp added (+) mtFEMBase/MaterialPropertyIDs.cpp added (+) mtFEMBase/mtFEMBase.cpp added mtFEMBase/Property.cpp added (+) mtFEMBase/RadialLoading.cpp added (+) mtFEMBase/RotativeLoading.cpp added (+) mtFEMBase/Stage.cpp added (+) mtFEMBase/UniformLoading.cpp added (+) mtFEM/MtElement.h added mtFEMBase/Activable.h added (+) mtFEMBase/ContactConfigFlag.h added (+) mtFEMBase/Element.h added (+) mtFEMBase/ElementFactoryArgs.h added (+) mtFEMBase/ElementID.h added (+) mtFEMBase/ElementIDList.h added (+) mtFEMBase/ElementIterator.h added (+) mtFEMBase/ElementProperties.h added (+) mtFEMBase/ElementPropertyID.h added (+) mtFEMBase/ElementPropertyIDs.h added (+) mtFEMBase/EqualityDofConstraints.h added (+) mtFEMBase/EqualityDofConstraintsSet.h added (+) mtFEMBase/FixationSet.h added (+) mtFEMBase/GpStateBase.h added (+) mtFEMBase/InitialConditionSet.h added (+) mtFEMBase/Interaction.h added (+) mtFEMBase/InteractionSet.h added (+) mtFEMBase/Loading.h added mtFEMBase/LoadingSet.h added mtFEMBase/LoadingSetBase.h added mtFEMBase/MaterialFactoryArgs.h added (+) mtFEMBase/MaterialID.h added (+) mtFEMBase/MaterialIDList.h added (+) mtFEMBase/MaterialLaw.h added (+) mtFEMBase/MaterialLawFactoryArgs.h added (+) mtFEMBase/MaterialLawID.h added (+) mtFEMBase/MaterialLawIDList.h added (+) mtFEMBase/MaterialLawProperties.h added (+) mtFEMBase/MaterialLawPropertyID.h added (+) mtFEMBase/MaterialLawPropertyIDs.h added (+) mtFEMBase/MaterialLawSet.h added (+) mtFEMBase/MaterialProperties.h added (+) mtFEMBase/MaterialPropertyID.h added (+) mtFEMBase/MaterialPropertyIDs.h added (+) mtFEMBase/mtFEMBase.h added mtFEMBase/Properties.h added (+) mtFEMBase/Property.h added (+) mtFEMBase/RadialLoading.h added (+) mtFEMBase/RotativeLoading.h added (+) mtFEMBase/Stage.h added (+) mtFEMBase/StageDepValue.h added (+) mtFEMBase/UniformLoading.h added (+) mtFEMBase/Makefile.in added mtFEM/MtElement.inl added mtFEMBase/Element.inl added (+) mtFEMBase/ElementIterator.inl added (+) mtFEMBase/MaterialLaw.inl added (+) mtFEMBase/Properties.inl added (+) mtFEMBase/StageDepValue.inl added (+) mtFEM/Activable.cpp deleted mtFEM/ContactConfigFlag.cpp deleted mtFEM/Element.cpp deleted mtFEM/ElementIDList.cpp deleted mtFEM/ElementIterator.cpp deleted mtFEM/ElementProperties.cpp deleted mtFEM/ElementPropertyIDs.cpp deleted mtFEM/EqualityDofConstraints.cpp deleted mtFEM/EqualityDofConstraintsSet.cpp deleted mtFEM/FixationSet.cpp deleted mtFEM/GpStateBase.cpp deleted mtFEM/InitialConditionSet.cpp deleted mtFEM/Interaction.cpp deleted mtFEM/InteractionSet.cpp deleted mtFEM/Loading.cpp deleted mtFEM/LoadingSet.cpp deleted mtFEM/MaterialIDList.cpp deleted mtFEM/MaterialLaw.cpp deleted mtFEM/MaterialLawIDList.cpp deleted mtFEM/MaterialLawProperties.cpp deleted mtFEM/MaterialLawPropertyIDs.cpp deleted mtFEM/MaterialLawSet.cpp deleted mtFEM/MaterialProperties.cpp deleted mtFEM/MaterialPropertyIDs.cpp deleted mtFEM/Property.cpp deleted mtFEM/RadialLoading.cpp deleted mtFEM/RotativeLoading.cpp deleted mtFEM/Stage.cpp deleted mtFEM/UniformLoading.cpp deleted mtFEM/Activable.h deleted mtFEM/ContactConfigFlag.h deleted mtFEM/Element.h deleted mtFEM/ElementFactoryArgs.h deleted mtFEM/ElementID.h deleted mtFEM/ElementIDList.h deleted mtFEM/ElementIterator.h deleted mtFEM/ElementProperties.h deleted mtFEM/ElementPropertyID.h deleted mtFEM/ElementPropertyIDs.h deleted mtFEM/EqualityDofConstraints.h deleted mtFEM/EqualityDofConstraintsSet.h deleted mtFEM/FixationSet.h deleted mtFEM/GpStateBase.h deleted mtFEM/InitialConditionSet.h deleted mtFEM/Interaction.h deleted mtFEM/InteractionSet.h deleted mtFEM/Loading.h deleted mtFEM/LoadingSet.h deleted mtFEM/MaterialFactoryArgs.h deleted mtFEM/MaterialID.h deleted mtFEM/MaterialIDList.h deleted mtFEM/MaterialLaw.h deleted mtFEM/MaterialLawFactoryArgs.h deleted mtFEM/MaterialLawID.h deleted mtFEM/MaterialLawIDList.h deleted mtFEM/MaterialLawProperties.h deleted mtFEM/MaterialLawPropertyID.h deleted mtFEM/MaterialLawPropertyIDs.h deleted mtFEM/MaterialLawSet.h deleted mtFEM/MaterialProperties.h deleted mtFEM/MaterialPropertyID.h deleted mtFEM/MaterialPropertyIDs.h deleted mtFEM/Properties.h deleted mtFEM/Property.h deleted mtFEM/RadialLoading.h deleted mtFEM/RotativeLoading.h deleted mtFEM/Stage.h deleted mtFEM/StageDepValue.h deleted mtFEM/UniformLoading.h deleted mtFEM/Element.inl deleted mtFEM/ElementIterator.inl deleted mtFEM/MaterialLaw.inl deleted mtFEM/Properties.inl deleted mtFEM/StageDepValue.inl deleted File Text status oeFEM deleted oeFEM/Analysis.cpp deleted oeFEM/Analysis.h deleted oeFEM/Analysis.inl deleted oeFEM/Connexion.cpp deleted oeFEM/Connexion.h deleted oeFEM/Connexion.inl deleted oeFEM/ConnexionBuilder.cpp deleted oeFEM/ConnexionBuilder.h deleted oeFEM/ConnexionSet.cpp deleted oeFEM/ConnexionSet.h deleted oeFEM/Dof.cpp deleted oeFEM/Dof.h deleted oeFEM/Dof.inl deleted oeFEM/DofFlag.cpp deleted oeFEM/DofFlag.h deleted oeFEM/DofFlagSet.cpp deleted oeFEM/DofFlagSet.h deleted oeFEM/DofFlagSet.inl deleted oeFEM/DofSet.cpp deleted oeFEM/DofSet.h deleted oeFEM/DofSet.inl deleted oeFEM/Domain.cpp deleted oeFEM/Domain.h deleted oeFEM/ElementPropertiesSet.cpp deleted oeFEM/ElementPropertiesSet.h deleted oeFEM/ElementSet.cpp deleted oeFEM/ElementSet.h deleted oeFEM/ElementSet.inl deleted oeFEM/ElemStrVector.cpp deleted oeFEM/ElemStrVector.h deleted oeFEM/Material.cpp deleted oeFEM/Material.h deleted oeFEM/Material.inl deleted oeFEM/MaterialSet.cpp deleted oeFEM/MaterialSet.h deleted oeFEM/MaterialSet.inl deleted oeFEM/MetisConnexionBuilder.cpp deleted oeFEM/MetisConnexionBuilder.h deleted oeFEM/Partition.cpp deleted oeFEM/Partition.h deleted oeFEM/Partition.inl deleted oeFEM/SloanConnexionBuilder.cpp deleted oeFEM/SloanConnexionBuilder.h deleted oeFEM/StrID.cpp deleted oeFEM/StrID.h deleted oeFEM/StrIDList.cpp deleted oeFEM/StrIDList.h deleted oeFEM/StrIDs.cpp deleted oeFEM/StrIDs.h deleted oeFEM/StrMatrixBase.cpp deleted oeFEM/StrMatrixBase.h deleted oeFEM/StrVector.cpp deleted oeFEM/StrVector.h deleted oeFEM/StrVectorBase.cpp deleted oeFEM/StrVectorBase.h deleted oeFEM/StrVectorBase.inl deleted oeFEM/UnionLock.cpp deleted oeFEM/UnionLock.h deleted oeFEMBase added oeFEMBase/Analysis.cpp added (+) oeFEMBase/Analysis.h added (+) oeFEMBase/Analysis.inl added (+) oeFEMBase/Connexion.cpp added (+) oeFEMBase/Connexion.h added (+) oeFEMBase/Connexion.inl added (+) oeFEMBase/ConnexionBuilder.cpp added (+) oeFEMBase/ConnexionBuilder.h added (+) oeFEMBase/ConnexionSet.cpp added (+) oeFEMBase/ConnexionSet.h added (+) oeFEMBase/Dof.cpp added (+) oeFEMBase/Dof.h added (+) oeFEMBase/Dof.inl added (+) oeFEMBase/DofFlag.cpp added (+) oeFEMBase/DofFlag.h added (+) oeFEMBase/DofFlagSet.cpp added (+) oeFEMBase/DofFlagSet.h added (+) oeFEMBase/DofFlagSet.inl added (+) oeFEMBase/DofSet.cpp added (+) oeFEMBase/DofSet.h added (+) oeFEMBase/DofSet.inl added (+) oeFEMBase/Domain.cpp added (+) oeFEMBase/Domain.h added (+) oeFEMBase/ElementPropertiesSet.cpp added (+) oeFEMBase/ElementPropertiesSet.h added (+) oeFEMBase/ElementSet.cpp added (+) oeFEMBase/ElementSet.h added (+) oeFEMBase/ElementSet.inl added (+) oeFEMBase/ElemStrVector.cpp added (+) oeFEMBase/ElemStrVector.h added (+) oeFEMBase/Makefile.in added oeFEMBase/Material.cpp added (+) oeFEMBase/Material.h added (+) oeFEMBase/Material.inl added (+) oeFEMBase/MaterialSet.cpp added (+) oeFEMBase/MaterialSet.h added (+) oeFEMBase/MaterialSet.inl added (+) oeFEMBase/MetisConnexionBuilder.cpp added (+) oeFEMBase/MetisConnexionBuilder.h added (+) oeFEMBase/Partition.cpp added (+) oeFEMBase/Partition.h added (+) oeFEMBase/Partition.inl added (+) oeFEMBase/SloanConnexionBuilder.cpp added (+) oeFEMBase/SloanConnexionBuilder.h added (+) oeFEMBase/StrID.cpp added (+) oeFEMBase/StrID.h added (+) oeFEMBase/StrIDList.cpp added (+) oeFEMBase/StrIDList.h added (+) oeFEMBase/StrIDs.cpp added (+) oeFEMBase/StrIDs.h added (+) oeFEMBase/StrMatrixBase.cpp added (+) oeFEMBase/StrMatrixBase.h added (+) oeFEMBase/StrVector.cpp added (+) oeFEMBase/StrVector.h added (+) oeFEMBase/StrVectorBase.cpp added (+) oeFEMBase/StrVectorBase.h added (+) oeFEMBase/StrVectorBase.inl added (+) oeFEMBase/UnionLock.cpp added (+) oeFEMBase/UnionLock.h added (+) --- //[[r_boman@yahoo.fr|Romain BOMAN]] 2007/08/13 09:03//