====== 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//