Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2007:08_13

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 (+)

Romain BOMAN 2007/08/13 09:03

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