===== Commit 2016-03-23 ===== Gurson version Fabulous + Visco KocksMecking 3 ===== Gurson ===== * Dans le cadre du projet Fabulous, j'avais implémenté un modèle d'endo de Gurson que je n'avais jamais eut le temps de commiter (petits soucis de convergence quand plus rien ne se passait). En adaptant les paramètres de génération de la raideur matériau (matrice de raideur semi-numérique), tous les tests de base passent dorénavant ... * Le matériau est développé dans le même esprit que les autres matériaux : * 1 matériau : * ''EvpGursonDamageHypoMaterial'' * un ensemble de matérialLaws associé : * ''GursonTvergaardVIsoHCriterion'' : définition de la surface de plasticité (ici GursonTwergaard) * ''GursonTvergaardDamageEvolution'' : une loi d'évolution de l'endommagement * ''ViscoKocksMecking2YieldStress'' / ''xxxIsotropicHardening'' / ''xxxYieldStress'' : une limite d'élasticité (dynamique) : $\sigma_y(\bar{\epsilon}^{vp}, \dot{\bar{\epsilon}}^{vp})$ * Ajout de la contrainte limite visco-plastiqeu de Kocks Mecking version 3 : ''ViscoKocksMecking3YieldStress'' * Implémentation des fonction ''YieldStress::getviscoM'' et ''YieldStress::getSatViscoM'' nécessaire au calculs Gurson (Attention fait uniquement pour les lois "Gurson" (perzina, kocksMecking)). * Avant que je ne puisse faire la doc, je joint le pdf de la présentation du modèle dans le cadre de fabulous : {{:commit:2016:gursonfabulous.pdf|Presentation du modèle de Gurson dans le cadre de Fabulous}} * nb : je n'ai pas supprimé l'ancienne version de Gurson implémentée en son temps par Laurent Adam si je ne me trompe ... ===== Divers ===== * un booleen "verbose" est défini dans "Material" (tous les matériau ont dorénavant une variable verbose). J'ai unifié les verbose implémenté dans 80 % des matériaux... (use getVerbose()) * Le calcul de la perturbation de la matrice de raideur numérique matériau (matériau hypo uniquement) a été modifié de manière à ce que la perturbation soit continue avant : double pertu = 1.0e-6; if (defo1.getNorm() > 0.0) pertu *= defo1.getNorm(); après : double pertu = 1.0e-8; if (defo1.getNorm() > 1.0e-4) pertu = 1.0e-4*defo1.getNorm() (nb : je viens de me rendre compte que c'est pas fait sur le calcul de la part volumique de la matrice ... to be done...) * Suppression de la fonction ''getEvpDerivative'' des éléments (plus nécessaires depuis que la vitesse de défo plastique est stocké dans les GPStates). Le loadAdaptationManager lit directement les valeurs dans le GPState. * Suppression définitive de la symMatr3 defo de ''CauchyMechanicalGpState'' (couche maintenant vide => à supprimer) * CauchyMechanicalGpkState::getRefDefo() : accès par référence à la matrice de défo * ''StrainCalcMethodANS1Hexa'' : depuis que l'incrément de défo est stoqué dans le GKState, les méthodes ANS ne devaient plus fonctionner (vu qu'elles allaient relire/réécrire les défos dans les GPStates). Il n'y a manifestement pas de tests ANS dans la batterie vu que ma correction ne change rien. Comment puis-je vérifier que je n'ai pas cassé autre chose !!! * battery : ajout des répertoires "fabulous/gurson3D", "fabulous/gursonAxisym", "fabulous/gursonEpd", "fabulous/gursonVKM2", "fabulous/viscoKocksMecking3" dans les tests de batterie ===== Fichiers ajoutés/supprimés ===== Adding: oo_meta\mtMaterialLaws\gursonDamage Adding: oo_meta\mtMaterialLaws\gursonDamage\GursonTvergaardDamageEvolution.h/cpp Adding: oo_meta\mtMaterialLaws\gursonDamage\GursonTvergaardIsoHCriterion.h/cpp Adding: oo_meta\mtMaterialLaws\gursonDamage\GursonTvergaardVIsoHCriterion.h/cpp Adding: oo_meta\mtMaterialLaws\yieldstress\ViscoKocksMecking3YieldStress.h/cpp Adding: oo_meta\mtMaterials\volumes\EvpGursonDamageHypoMaterial.h/cpp ===== Tests ajoutés/supprimés ===== Added: oo_meta\apps\monosMaterials2\Gurson2DamageLinearIHAdded : oo_nda\fabulous\gurson3D/GursonDamageTracDamConstant.py Added : oo_nda\fabulous\gurson3D/GursonDamageTracDamConstantEp.py Added : oo_nda\fabulous\gurson3D/GursonDamageTracDamConstantEvp.py Added : oo_nda\fabulous\gurson3D/GursonDamageTracDamGrow.py Added : oo_nda\fabulous\gurson3D/GursonDamageTracDamGrowEp.py Added : oo_nda\fabulous\gurson3D/GursonDamageTracDamGrowEvp.py Added : oo_nda\fabulous\gurson3D/GursonDamageTracDamNuclFastEp.py Added : oo_nda\fabulous\gurson3D/GursonDamageTracDamNuclFastEvp.py Added : oo_nda\fabulous\gurson3D/GursonDamageTracDamNuclFastGrowEp.py Added : oo_nda\fabulous\gurson3D/GursonDamageTracDamNuclFastGrowEvp.py Added : oo_nda\fabulous\gurson3D/GursonDamageTracDamNuclSlowEp.py Added : oo_nda\fabulous\gurson3D/GursonDamageTracDamNuclSlowEvp.py Added : oo_nda\fabulous\gurson3D/GursonDamageTracDamNuclSlowGrowEp.py Added : oo_nda\fabulous\gurson3D/GursonDamageTracDamNuclSlowGrowEvp.py Added : oo_nda\fabulous\gurson3D/GursonDamageTracDamNucleation.py Added : oo_nda\fabulous\gurson3D/GursonDamageTracDamNucleationHigh.py Added : oo_nda\fabulous\gursonAxisym/GursonDamageTracDamConstant.py Added : oo_nda\fabulous\gursonAxisym/GursonDamageTracDamConstantEp.py Added : oo_nda\fabulous\gursonAxisym/GursonDamageTracDamConstantEvp.py Added : oo_nda\fabulous\gursonAxisym/GursonDamageTracDamConstantNum.py Added : oo_nda\fabulous\gursonAxisym/GursonDamageTracDamGrow.py Added : oo_nda\fabulous\gursonAxisym/GursonDamageTracDamGrowEp.py Added : oo_nda\fabulous\gursonAxisym/GursonDamageTracDamGrowEvp.py Added : oo_nda\fabulous\gursonAxisym/GursonDamageTracDamNuclFastEp.py Added : oo_nda\fabulous\gursonAxisym/GursonDamageTracDamNuclFastEvp.py Added : oo_nda\fabulous\gursonAxisym/GursonDamageTracDamNuclFastGrowEp.py Added : oo_nda\fabulous\gursonAxisym/GursonDamageTracDamNuclFastGrowEvp.py Added : oo_nda\fabulous\gursonAxisym/GursonDamageTracDamNuclSlowEp.py Added : oo_nda\fabulous\gursonAxisym/GursonDamageTracDamNuclSlowEvp.py Added : oo_nda\fabulous\gursonAxisym/GursonDamageTracDamNuclSlowGrowEp.py Added : oo_nda\fabulous\gursonAxisym/GursonDamageTracDamNuclSlowGrowEvp.py Added : oo_nda\fabulous\gursonAxisym/GursonDamageTracDamNucleation.py Added : oo_nda\fabulous\gursonAxisym/GursonDamageTracDamNucleationHigh.py Added : oo_nda\fabulous\gursonEpd/GursonDamageTracDamConstantEp.py Added : oo_nda\fabulous\gursonEpd/GursonDamageTracDamConstantEvp.py Added : oo_nda\fabulous\gursonEpd/GursonDamageTracDamGrow.py Added : oo_nda\fabulous\gursonEpd/GursonDamageTracDamGrowEp.py Added : oo_nda\fabulous\gursonEpd/GursonDamageTracDamGrowEvp.py Added : oo_nda\fabulous\gursonEpd/GursonDamageTracDamGrowKM.py Added : oo_nda\fabulous\gursonEpd/GursonDamageTracDamNuclFastEp.py Added : oo_nda\fabulous\gursonEpd/GursonDamageTracDamNuclFastEvp.py Added : oo_nda\fabulous\gursonEpd/GursonDamageTracDamNuclFastGrowEp.py Added : oo_nda\fabulous\gursonEpd/GursonDamageTracDamNuclFastGrowEvp.py Added : oo_nda\fabulous\gursonEpd/GursonDamageTracDamNuclSlowEp.py Added : oo_nda\fabulous\gursonEpd/GursonDamageTracDamNuclSlowEvp.py Added : oo_nda\fabulous\gursonEpd/GursonDamageTracDamNuclSlowGrowEp.py Added : oo_nda\fabulous\gursonEpd/GursonDamageTracDamNuclSlowGrowEvp.py Added : oo_nda\fabulous\gursonVKM2/KM2TracTempV1.py Added : oo_nda\fabulous\gursonVKM2/KM2TracTempVT0_000001.py Added : oo_nda\fabulous\gursonVKM2/KM2TracTempVT0_001.py Added : oo_nda\fabulous\gursonVKM2/KM2TracTempVT1.py Added : oo_nda\fabulous\gursonVKM2/KM2TracTempVT1000.py Added : oo_nda\fabulous\gursonVKM2/KM2TracVitesseDefo293K.py Added : oo_nda\fabulous\gursonVKM2/KM2TracVitesseDefo350K.py Added : oo_nda\fabulous\gursonVKM2/KM2TracVitesseDefo400K.py Added : oo_nda\fabulous\gursonVKM2/KM2TracVitesseDefo450K.py Added : oo_nda\fabulous\gursonVKM2/KM2TracVitesseDefo500K.py Added : oo_nda\fabulous\tools\GursonDamageTrac.py Added : oo_nda\fabulous\tools\GursonKM2TracTemp.py Added : oo_nda\fabulous\tools\KM2Material.py Added : oo_nda\fabulous\tools\KM3TracEpdTemp.py Added : oo_nda\fabulous\tools\KM3TracVitesseDefo.py Added : oo_nda/fabulous/viscoKocksMecking3/KM3TracTempV1.py Added : oo_nda/fabulous/viscoKocksMecking3/KM3TracTempVT0_000001.py Added : oo_nda/fabulous/viscoKocksMecking3/KM3TracTempVT0_001.py Added : oo_nda/fabulous/viscoKocksMecking3/KM3TracTempVT1.py Added : oo_nda/fabulous/viscoKocksMecking3/KM3TracTempVT1000.py Added : oo_nda/fabulous/viscoKocksMecking3/KM3TracVitesseDefo293K.py Added : oo_nda/fabulous/viscoKocksMecking3/KM3TracVitesseDefo350K.py Added : oo_nda/fabulous/viscoKocksMecking3/KM3TracVitesseDefo400K.py Added : oo_nda/fabulous/viscoKocksMecking3/KM3TracVitesseDefo450K.py Added : oo_nda/fabulous/viscoKocksMecking3/KM3TracVitesseDefo500K.py --- //[[L.Papeleux@ulg.ac.be|Luc Papeleux]] 2016/03/23 //