====== Commit 2006-11-24 ====== ===== Modifs ===== * Nettoyage de ''apps'' pour introduire la nouvelle formulation de la géométrie (voir précédent [[10_23|commit Robo]]). * Correction dans ''apps.stp.cont2'', seule la partie inférieure de la matrice se déplaçait (pas très joli). * Nettoyage des cas tests utilisant ''tpoi.define'' (par exemple ''apps.qs.elbowModif4b'') quand c'était possible. Les fichiers de données sont à présent lisibles et beaucoup plus petits! * Nettoyage de ''toolbox.createMaterial'' (uniformisation des noms des fonctions) * Ajout d'un outil de sélection de noeuds selon un anneau circulaire : ''AnnealedSelector'' (j'ai hésité à appeler la classe ''AnalSelector''). Ce n'est encore possible que selon un cylindre orienté selon ''x'', ''y'' ou ''z''. Utilisation (voir aussi ''apps.qs.sph3d'') : groupset.copy(Group(numero)) groupset(numero).addMeshPointsFromObject(nobj, type_id, AnnealedSelector(lock, cx, cy, cx, Rmin, Rmax)) où | ''numero'' | numéro du groupe| | ''nobj'' | numéro de l'entité| | ''type_id'' | identificateur de l'entité (''CURVE_ID'', ''SIDE_ID'', ''GROUP_ID'', etc) - voir PhySet| | ''lock'' | ''TX'', ''TY'' ou ''TZ'' : direction de l'axe du cylindre| | ''cx'', ''cy'', ''cz'' | coordonnées du centre du cercle générant l'anneau | | ''Rmin'', ''Rmax'' | rayon minimum et maximum de l'anneau | * Regroupement des paramètres de l'algorithme d'adaptation de pression (''loadAdaptationManager''). Il y en avait dans le ''loadAdaptationManager'' (''LAM_METHOD''), dans le matériau (''DEVP_OPT'' pour la vitesse de déformation optimale) et dans l'élément de traction (''POPT_MAT'' pour le numéro du matériau où on appliquait la pression et qui déterminait aussi si la ''LoadingInteraction'' était à prendre en compte dans l'adaptation de pression!!). A présent, tout est stocké dans le ''loadAdaptationManager''. Par exemple : lam = metafor.getLoadAdaptationManager() lam.setMethod(LAM_METHOD2) # Methode de calcul de l'adaptation de pression lam.setOptimalStrainRate(3.0E-4) # Vitesse de defo optimale (ancien DEVP_OPT) lam.setOptimalPressureMaterial(3) # Numero du materiau ou s'applique l'adaptation de pression (ancien POPT_MAT) lam.setOptimalPressureProperty(1) # Numero du property ou s'applique l'adaptation de pression * Endommagement : * Réécriture des lois de Laurent Adam (et corrections diverses) selon la formulation utilisant les materialLaws. * Outre l'aspect esthétique des routines (ce n'était pas toujours du luxe), cela permet de n'avoir plus qu'une seule formulation des matériaux dans Metafor. * C'est maintenant possible aussi (en théorie) de rajouter des lois d'endommagement sans y passer 6 mois. * En pratique, sur le même modèle que ''IsotropicHardening'', une classe mère ''Damage'' a été créée pour rentrer une nouvelle loi d'endommagement. Le matériau d'endommagement ne fait qu'appeler les objets de cette classe pour l'intégration de la loi constitutive. Ainsi, les 3 matériaux ''evpdHypoMaterial'', ''spfHypoMaterial'' (qui comprend 2 lois) sont regroupés en un seul matériau ''EvpIsoHDamageHypoMaterial'' et 3 lois d'endommagement sont à présent dans Metafor : Gurson-Tvergaard, Khaleel et celle que j'ai appelée "Adam-Khaleel" qui est le modèle de Khaleel modifié par Laurent Adam dans sa thèse (ancien ''spfHypoMaterial''). * Tout n'est pas encore parfait : pas d'écrouissage mixte, pas de thermomec, pas de choix du critère de plasticité (seul Von-Mises existe) et pas encore non plus de matrice de raideur tangente analytique (qui n'a jamais existé pour ce matériau d'ailleurs) * Doc : * Mise en format Dokuwiki des [[/doc:devel:memos|petits mémos]]. * Mise à jour de la [[doc:user:geometry:mesh:3d#mailleur_par_extrusion|doc]] du mailleur d'extrusion. * Mise à jour de la doc des matériaux. * [[doc:user:elements:volumes:damage|Doc]] sur les lois d'endommagement. ===== Fichiers ajoutés/supprimés ===== A apps/monosMaterials/evpIsoDamage2dAxiCis.py A apps/monosMaterials/evpIsoDamage2dAxiCis2.py A apps/monosMaterials/evpIsoDamage2dAxiComp2.py A apps/monosMaterials/evpIsoDamage2dAxiComp2Visco.py A apps/monosMaterials/evpIsoDamage2dAxiTrac.py A apps/monosMaterials/evpIsoDamage2dEpeCis.py A apps/monosMaterials/evpIsoDamage2dEpeCis2.py A apps/monosMaterials/evpIsoDamage2dEpeCis2Visco.py A apps/monosMaterials/evpIsoDamage2dEpeTrac.py A apps/monosMaterials/evpIsoDamage2dEpeTrac2.py A apps/monosMaterials/evpIsoDamage3dCis.py A apps/monosMaterials/evpIsoDamage3dTrac.py R apps/monosMaterials/evpdHypo2dAxiCis.py R apps/monosMaterials/evpdHypo2dAxiComp2.py R apps/monosMaterials/evpdHypo2dAxiComp2Visco.py R apps/monosMaterials/evpdHypo2dAxiTrac.py R apps/monosMaterials/evpdHypo2dEpeCis.py R apps/monosMaterials/evpdHypo2dEpeCis2.py R apps/monosMaterials/evpdHypo2dEpeCis2Visco.py R apps/monosMaterials/evpdHypo2dEpeTrac.py R apps/monosMaterials/evpdHypo2dEpeTrac2.py R apps/monosMaterials/evpdHypo3dCis.py R apps/monosMaterials/evpdHypo3dTrac.py A mtMaterialLaws/damage A mtMaterialLaws/damage/AdamKhaleelDamage.cpp A mtMaterialLaws/damage/AdamKhaleelDamage.h A mtMaterialLaws/damage/AdamKhaleelDamageShcuts.h A mtMaterialLaws/damage/AdamKhaleelDamageShcuts.inl A mtMaterialLaws/damage/Damage.cpp A mtMaterialLaws/damage/Damage.h A mtMaterialLaws/damage/DamageShcuts.h A mtMaterialLaws/damage/DamageShcuts.inl A mtMaterialLaws/damage/GursonTvergaardDamage.cpp A mtMaterialLaws/damage/GursonTvergaardDamage.h A mtMaterialLaws/damage/GursonTvergaardDamageShcuts.h A mtMaterialLaws/damage/GursonTvergaardDamageShcuts.inl A mtMaterialLaws/damage/KhaleelDamage.cpp A mtMaterialLaws/damage/KhaleelDamage.h A mtMaterialLaws/damage/KhaleelDamageShcuts.h A mtMaterialLaws/damage/KhaleelDamageShcuts.inl A mtMaterials/volumes/EvpIsoHDamageHypoGpState.cpp A mtMaterials/volumes/EvpIsoHDamageHypoGpState.h A mtMaterials/volumes/EvpIsoHDamageHypoMatShcuts.cpp A mtMaterials/volumes/EvpIsoHDamageHypoMatShcuts.h A mtMaterials/volumes/EvpIsoHDamageHypoMaterial.cpp A mtMaterials/volumes/EvpIsoHDamageHypoMaterial.h R mtMaterials/volumes/EvpdHypoGpState.cpp R mtMaterials/volumes/EvpdHypoGpState.h R mtMaterials/volumes/EvpdHypoGpkState.cpp R mtMaterials/volumes/EvpdHypoGpkState.h R mtMaterials/volumes/EvpdHypoMatShcuts.cpp R mtMaterials/volumes/EvpdHypoMatShcuts.h R mtMaterials/volumes/EvpdHypoMaterial.cpp R mtMaterials/volumes/EvpdHypoMaterial.h R mtMaterials/volumes/SpfEvpdHypoGpState.cpp R mtMaterials/volumes/SpfEvpdHypoGpState.h R mtMaterials/volumes/SpfEvpdHypoMaterial.cpp R mtMaterials/volumes/SpfEvpdHypoMaterial.h --- //[[ppjeunechamps@ulg.ac.be|Pierre-Paul Jeunechamps]] 2006/11/24 11:42//