Table of Contents
Commit 2007-08-13
Modifs
Suppression des dépendances Domain/Metafor
StrVector
: la gestion des exceptions de typeContinue Exception
(jacobien négatifs, etc) a été déplacée dansTimeIntegration
(fctgenForce
)Element
: création d'une couche non-template regroupant l'interface spécifique à l'analyseMetafor
. J'ai nommé cette coucheMtElement
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 demtMaterials
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 quemtFEM
mises à part les cycliques). Les fichiers sont répartis dansoo_meta/mtFEMBase
etoofelie/oeFEMBase
. mtFEM
dépend demtFEMBase
. La plupart des libs qui dépendent demtFEM
dépendent aussi demtFEMBase
(par contre lemain
ne dépend plus demtFEM
)- SWIG: modifier les includes de
_mtFEM
(j'ai pas encore fait le_mtFEMBase
) _mtFEM
dépend demtFEMBase
- 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 (+)
— Romain BOMAN 2007/08/13 09:03