====== Commit 2008-03-17 ====== ===== Lois matérielles - endommagement isotrope===== Corrections de bugs en tout genre (notamment, on s'étonnera que j'avais des soucis de convergence à grand endo, le remplacement d'un 1333 en 133... ça fait la différence) Possibilité supplémentaire dans la loi matérielle pour le remodelage osseux : introduction de deux constantes de remodelages différentes pour l'apposition ("réparation") et la résorption (endommagement). Ajout de cas tests en conséquence (des monos et une dent qs) et modification de tous mes cas-tests suite à la correction des bugs. =====Matériaux - endommagement orthotrope===== Introduction d'une loi d'endommagement orthotrope (''ContinuousAnisoDamageEvpIsoHHypoMaterial'' - ça devient long comme nom mais le Aniso est là pour l'endo et le Iso pour l'isotropic hardening). Seul l'endo est non isotrope, le matériau reste isotrope (partie élastique isotrope et plasticité uniquement critère de Von-Mises avec écrouissage linéaire). L'endo est défini par trois valeurs (matrice 3x3 diagonale ((Contrainte assez forte mais si on veut simplement une 3x3 symétrique, il faut implémenter, pour la matrice de raideur analytique, des tenseurs d'ordre beacuoup plus élevé - 6 voire même 8 - ... j'ai donc décidé d'opter pour une contrainte forte dans un premier temps))). Le couplage plasticité/endo n'est pas des plus simples et quelques réductions au niveau des lois de variations ont été faites (( [[mmengoni@ulg.ac.be|Me]] consulter pour plus de détails quant à l'implémentation du couplage (intégration endo/plasticité itérative) )). C'est d'ailleurs tellement pas simple que la matrice de raideur analytique foire bien pour les essais en traction/compression :-/... Uniquement à utiliser avec ''STIFFMETHOD=STIFF_NUMERIC'' pour le moment. =====Lois matérielles- endommagement orthotrope===== Introduction d'une loi générique (''ContinuousAnisoDamage'') et d'une loi bidon (''DummyContinuousAnisoDamage'') de variation d'endo orthotrope : $\dot{D} = g(D, \sigma, \varepsilon, plasticité)$ où $ g $ est aussi une matrice 3x3. Pour ajouter une loi, il suffit de définir la loi de variation de l'endo et ses dérivées par rapport à la pression, le déviateur des contraintes, la défo volumique $ J $, la défo déviatorique, $\Delta r$ et l'endo $ D $. Par "simplification" pour le calcul de la matrice de raideur analytique, il y a des restrictions : - La variation d'endo $ g $ doit être telle que l'endo reste une matrice diagonale ($ g $ est diagonal ((cfr première note de bas de page...))). - La dérivée de $ g $ avec l'endo doit rendre un tenseur "pseudo-diagonal" : $\frac{\partial g_{ij}}{\partial D_{kl}} = b\delta_{ij}\delta_{kl}+c/2(\delta_{ik}\delta_{jl}+\delta_{il}\delta_{jk})$ Sans ces restrictions, cela ne fonctionnera quand même pas (même dans le cas ''STIFF_NUMERIC'') car toute le matériau a été écrit en en tenant compte... éventuellement à modifier dans la suite (modifs pas trop compliquée a priori) ===== mtMath ===== Ajout de deux fonctions supplémentaires pour les tenseurs du 4ème ordre (double produit contracté : $c = H_{ijkl}M_{ijkl}$ --> c=H.prodOnIjkl(M) et résolution équation tensorielle : $A_{ijkl}X_{klmn}=B_{ijmn}$, avec $ A $ et $ B $, deux tenseurs du quatrième ordre connus--> X = A.invProdOnKl(B), nécessite l'inversion d'une matrice pleine 9x9 et 9 produits matriciels 9x9 ) ===== A faire (liste non exhaustive!!). ===== Correction de la matrice de raideur analytique Lois d'endo orthotrope pas bidon... (et tests en conséquence) Trouver une solution pour un endo non diagonal?? ===== Tests. ===== Comme annoncé plus haut, plusieurs Monos testant la loi endo isotrope pour le os avec deux coefficients. Idem pour un test qs. Divers Monos 2d et 3d pour ''DummyContinuousAnisoDamage'' ===== Fichiers ajoutés / supprimés. ===== apps/monosMaterials/evpIsoDamageAlvBoneRemod2Pars2dAxiCis.py added apps/monosMaterials/evpIsoDamageAlvBoneRemod2Pars3dCis.py added apps/monosMaterials/evpIsoDamageAnisoDummy2DAxiCis.py added apps/monosMaterials/evpIsoDamageAnisoDummy2DTrac.py added apps/monosMaterials/evpIsoDamageAnisoDummy3DCis.py added apps/monosMaterials/evpIsoDamageAnisoDummy3DTrac.py added apps/qs/toothDamage2Const.py added mtMaterialLaws/damage/ContinuousAnisoDamage.cpp added mtMaterialLaws/damage/ContinuousAnisoDamage.h added mtMaterialLaws/damage/DummyContinuousAnisoDamage.cpp added mtMaterialLaws/damage/DummyContinuousAnisoDamage.h added mtMaterials/volumes/ContinuousAnisoDamageEvpIsoHHypoGpkState.cpp added mtMaterials/volumes/ContinuousAnisoDamageEvpIsoHHypoGpkState.h added mtMaterials/volumes/ContinuousAnisoDamageEvpIsoHHypoGpState.cpp added mtMaterials/volumes/ContinuousAnisoDamageEvpIsoHHypoGpState.h added mtMaterials/volumes/ContinuousAnisoDamageEvpIsoHHypoMaterial.cpp added mtMaterials/volumes/ContinuousAnisoDamageEvpIsoHHypoMaterial.h added //[[mmengoni@ulg.ac.be|Marlène Mengoni]] 17/03/2008//