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 :
GrainSize
a été créée dans mtMaterialLaws/grainsize
.isohard
, kinehard
ou plastvisco
.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.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) :
Pour utiliser ce nouveau matériau, on déclare dans le jeu de données :
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
.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
:
computeSigmaGrainSize
(comme on calcule la contrainte d'écrouissage et la contrainte visqueuse);computeDeltaGrainSize
;sigmaGrainSize
par rapport à gamma
: computeDSigmaGrainSizeDGamma
sigmaGrainSize
par rapport à grainSize
: computeDSigmaGrainSizeDGamma
deltaGrainSize
par rapport à gamma
: computeDSigmaGrainSizeDGamma
deltaGrainSize
par rapport à grainSize
: computeDSigmaGrainSizeDGamma
Etapes suivantes :
Une fois ces deux étapes franchies, on pourra définitivement virer la vieille loi nl8
.
cvs -d
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