Metafor

ULiege - Aerospace & Mechanical Engineering

User Tools

Site Tools


commit:2006:06_16



Commit 2006-06-16

Modifs

Split dans les matériaux d'endommagement. Le but final (mais il y a encore du boulot) est d'avoir la même structure pour l'endommagement que pour l'écrouissage isotrope ou cinématique et la viscosité plastique, à savoir le calcul de la matrice de raideur au niveau du matériau est indépendante de la loi utilisée. Plus concrètement pour ce commit :

  • Une classe de base GrainSize a été créée dans mtMaterialLaws/grainsize.
  • De cette classe de base dérive l'expression de la taille des grains ainsi que son évolution analogue à ce qui existe dans isohard, kinehard ou plastvisco.
  • Un nouveau matériau EvpIsoHGrainSizeHypoMaterial a été créé pour calculer la matrice de raideur tenant compte de la taille des grains. On doit donc associer à ce matériau une loi d'évolution de la taille des grains comme on le fait pour l'écrouissage isotrope, cinématique ou visqueux.
  • Conséquences :
    • L'ajout d'une nouvelle loi dépendant de la taille des grains devient beaucoup plus aisé.
    • On peut utiliser toutes les lois d'écrouissage et de viscosité avec une évolution de la taille de grains, ce qui n'était pas le cas avant.
  • Ajout dans VizWin de la visualisation de la taille des grains (Grain size).

Deux lois de taille de grains ont été implémentées (voir thèse de Laurent Adam et Doc) :

  • La loi de Perzyna couplée à une extension de la loi de Ghosh pour l'évolution de la taille des grains
  • La loi de Prandtl couplée à une extension de la loi de Ghosh pour l'évolution de la taille des grains

Pour utiliser ce nouveau matériau, on déclare dans le jeu de données :

  • un matériau de type EvpIsoHGrainSizeHypoMaterial dans le MaterialSet et on associe dans ses propriétés un numéro de loi d'évolution des grains GRAINSIZE_NUM de la même façon qu'on déclare un numéro de loi d'écrouissage YIELD_NUM. Il faut aussi déclarer une taille de grain initiale GRAINSIZE_INIT.
  • une loi d'évolution de la taille des grains dans le MaterialLawSet.

Pour programmer une loi d'évolution de la taille des grains, on doit déclarer 2 fonctions et leur dérivée par rapport à gamma (déformation plastique) et par rapport à grainSize :

  • Le calcul de la contrainte liée à la taille des grains computeSigmaGrainSize (comme on calcule la contrainte d'écrouissage et la contrainte visqueuse);
  • Le calcul l'incrément de la taille des grains (loi d'évolution de la taille des grains) computeDeltaGrainSize;
  • La dérivée de sigmaGrainSize par rapport à gamma : computeDSigmaGrainSizeDGamma
  • La dérivée de sigmaGrainSize par rapport à grainSize : computeDSigmaGrainSizeDGamma
  • La dérivée de deltaGrainSize par rapport à gamma : computeDSigmaGrainSizeDGamma
  • La dérivée de deltaGrainSize par rapport à grainSize : computeDSigmaGrainSizeDGamma

Etapes suivantes :

  • Faire la même chose pour un écrouissage mixte (pas trop compliqué :-/).
  • Faire la même chose pour les matériaux d'endommagement de Laurent (plus compliqué :-\).

Une fois ces deux étapes franchies, on pourra définitivement virer la vieille loi nl8. LOL

:!: cvs -d :!:

Fichiers ajoutés/supprimés

A apps/monosMaterials/evpIsoGsHypo2dAxiCis.py
A apps/monosMaterials/evpIsoGsHypo2dAxiTrac.py
A apps/monosMaterials/evpIsoGsHypo2dEpeCis.py
A apps/monosMaterials/evpIsoGsHypo2dEpeTrac.py
A apps/monosMaterials/evpIsoGsHypo3dCis.py
A apps/monosMaterials/evpIsoGsHypo3dTrac.py
A mtMaterialLaws/grainsize/GrainSize.cpp
A mtMaterialLaws/grainsize/GrainSize.h
A mtMaterialLaws/grainsize/GrainSizeShcuts.h
A mtMaterialLaws/grainsize/GrainSizeShcuts.inl
A mtMaterialLaws/grainsize/PerzynaGrainSize.cpp
A mtMaterialLaws/grainsize/PerzynaGrainSize.h
A mtMaterialLaws/grainsize/PerzynaGrainSizeShcuts.h
A mtMaterialLaws/grainsize/PerzynaGrainSizeShcuts.inl
A mtMaterialLaws/grainsize/SinhGrainSize.cpp
A mtMaterialLaws/grainsize/SinhGrainSize.h
A mtMaterialLaws/grainsize/SinhGrainSizeShcuts.h
A mtMaterialLaws/grainsize/SinhGrainSizeShcuts.inl
A mtMaterials/volumes/EvpIsoHGrainSizeHypoGpState.cpp
A mtMaterials/volumes/EvpIsoHGrainSizeHypoGpState.h
A mtMaterials/volumes/EvpIsoHGrainSizeHypoMatShcuts.cpp
A mtMaterials/volumes/EvpIsoHGrainSizeHypoMatShcuts.h
A mtMaterials/volumes/EvpIsoHGrainSizeHypoMaterial.cpp
A mtMaterials/volumes/EvpIsoHGrainSizeHypoMaterial.h

TAG : PP_060616

Pierre-Paul Jeunechamps 2006/06/16 16:13

commit/2006/06_16.txt · Last modified: 2016/03/30 15:23 (external edit)