Anomalie #361
ouvertproblème convergence loi Orgéas ISOHYPER3DORGEAS2 avec dépendance à l'angle de Lode
Description
Gérard,
Le contexte est une loi d'Orgéas dépendante de Lode qui conduit à non convergence dans un calcul ballon de Frank. Par exemple, ce calcul passe très bien avec une loi Orgéas classique ou Favier.
Cette loi avait déjà bénéficié d'une amélioration de la convergence en petite déf suite ticket 346 ( https://herezh.irdl.fr/issues/346 ). Mais cela n'a pas résolu le cas de Frank sur ballon.
cas ballon trop compliqué pour un ticket, donc je cherche sur cas simple à comprendre dans quel cas une loi Orgéas est mal configurée pour bien converger lorsque l'on fait dépendre ses paramètres à l'angle Lode. Et comme on en a souvent parlé, il s'agit principalement de déterminer si le potentiel est convexe.
En fouillant par ci par là, on peut montrer qu'une fonction à une seule variable est convexe si sa dérivée seconde est toujours positive ou nulle. Par exemple, c'est le cas pour Favier, et d'ailleurs on dirait que la dérivée seconde du potentiel par rapport à Qeps est analogue au module de cisaillement de la loi (et donc forcément, il y a plutôt intérêt à ce qu'il soit posifif!!).
Je n'ai pas fait ce travail de dérivation pour Orgéas, et le cas est plus compliqué dans le cas d'un potentiel dépendant de Qeps et angle de Lode, donc 2 variables. mais ce serait à faire...
Pour étudier la convexité, suite à la résolution du ticket 360 ( https://herezh.irdl.fr/issues/360 ), je simule un certain nombre de trajets de chargement sur un cube 3D en contrainte plane (direction 3 libre). Je réalise des calculs en imposant via PRESSION : SIG22 = k*SIG11 pour 33 valeurs de k appartenant à [-1:1]. Le post-traitement de ces calculs permet de tracer 2 types de graphes :
1) projection du tenseur SIG dans le plan déviatoire : isolignes à déformation de mises égale
2) tenseur SIG dans le plan SIG11-SIG22 : isolignes à déformation de mises égale
(NB : déf mises en mesure almansi pour la loi Orgéas, donc analogue à Qeps)
Dans le fichier test.info joint :
Je démarre d'une loi Orgéas simple MAT_Orgeas telle que :
3K=6000, Q=15, mu1=30, mu2=5, alpha1=0.125 (NB : autres paramètres désactivés via un grand Qe=999.)
(pour info, je l'ai paramétrée pour être très très similaire à la loi Favier utilisée dans le ticket 360).
Cette loi converge très bien dans tous les cas. Et d'ailleurs, aucun problème particulier n'a été relevé par Frank en ce qui concerne ce genre de loi sur cas ballon.
Pour illustrer cette loi, on obtient ces graphes (graphe 1 : plan déviatoire, graphe 2 : plan SIG11-SIG22) :
Sur le 1er graphe, on repère le chargement via les angles de Lode bien connus. Et sur le second, j'ai ajouté quelques modes de chargement pour aider la lecture : TU/CU=traction/compression uniaxiale, TB/CB=traction/compression (équi-)biaxiale, CS=cisaillement. Par exemple, tout ce qui est du "genre TB", i.e k proche de 1 est en haut à droite du graphe, et on retrouve l'équivalent en CU le long de la ligne rouge horizontale à gauche du graphe (loi quasi-incompressible) ou bien le long de la ligne rouge verticale en bas du graphe (loi isotrope).
Certaines isolignes sont incomplètes car je n'ai pas chargé assez, donc c'est normal.
On voit l'énorme dissymétrie traction/compression s'amplifier avec l'augmentation du chargement (Qeps naturellement dissymétrique TU/CU). L'allure de ces isolignes ne présente pas de concavité particulière quoiqu'on devine une légère concavité aux plus grands niveaux de déf qui peut provenir de plein de raisons (précision du calcul, tenseurs pas strictement déviatoriques, etc...)
Je reviendrai plus tard sur le fait que la forme des isolignes sont arrondies au début, puis présentent des pointes de plus en plus prononcées sur le 2ème graphe (en CU et TB) en formant ainsi peu à peu des triangles aux côtés légèrement concaves.
Ensuite, j'ai essayé tout un tas de lois Orgéas dépendantes d'une fonction linéaire de cos(3phi). Je fais en sorte que les coefficients de base sont ceux en TU et je définis une fonction sur Q, mu1 et mu2 de manière à ce qu'on ait :
coef_CU = fraction*coef_TU
si je met une fraction inférieure à 1, j'aurai des coefs inférieurs en compression uniaxiale. J'obtiens une convergence pour des lois jusqu'à fraction = 0.6 environ. Et si je mets fraction = 0.5 ou moins, les calculs divergent dans tous ou presque les cas de chargement plus ou moins tôt dans le chargement.
Même pour la loi fraction=0.6 qui converge dans tous les cas, on obtient des isolignes assez caractéristiques d'une non-convexité du potentiel :
sur le premier graphe, j'ai zoomé pour mieux voir la forme non convexe dans le plan déviatoire en déf assez modérée. Par la suite, la dissymétrie traction/compression naturelle de Qeps permet de "rattraper le coup" si on veut.
Ensuite, pour fraction = 0.5 ou moins, ça diverge. On va dire que vu la forme des isolignes, on comprend bien que ça puisse diverger.
Par contre, et c'est la raison de ce ticket, j'ai essayé des lois en faisant en sorte que les coefficients soient plus grands en CU :
coef CU = fraction * coef TU
avec fraction > 1
Il est très difficile de faire converger ces lois, même pour des fractions proches de 1.
Par exemple, dans le fichier test.info, la loi MAT_Orgeas_Lode_CU_1p1TU est telle que fraction = 1.1 et donne le résultat suivant :
Les isolignes incomplètes viennent de la non-convergence des calculs. Et ça commence très tôt pour des déformations pas très élevées. Or, on voit bien que la forme des isolignes n'ont pas l'air anormales.
J'ai donc essayé de redéfinir cette loi d'une autre manière. Cette fois, je fais en sorte que les coefs de base de la loi sont ceux en CU et je calcule les paramètres de dépendance à Lode pour retomber sur les coefs prévus en TU. C'est la 3ème loi dans test.info : MAT_Orgeas_Lode_CU_1p1TU_depuis_CU
Pour la loi précédente, on avait :
en TU : Q=15, mu1=30, mu2=5 (coefs de base de la loi)
en CU : Q=16.5, mu1=33, mu2=5.5
Pour la nouvelle loi, on met comme coef de base :
Q=16.5, mu1=33, mu2=5.5
et on fait en sorte qu'en TU, on retombe sur : Q=15, mu1=30, mu2=5
dans la loi précédente, on avait des fonctions Lode COURBEPOLYNOMIALE de coef : 1.05 -0.05 . Dans la 2ème version, on a comme paramètres : 0.9545455 -0.0454545
J'ai vérifié que ces 2 lois correspondent bien strictement au même comportement. Par exemple sur le graphe suivant, c'est une comparaison entre les 3 lois présentes dans le fichier test.info en TU/CU :
Les lois Orgéas v1 (MAT_Orgeas_Lode_CU_1p1TU) et v2 (MAT_Orgeas_Lode_CU_1p1TU_depuis_CU) sont comme prévu :
1) identiques à la loi d'origine MAT_Orgéas en TU
2) légèrement plus raides en CU
Pour compléter la vérification, dans le répertoire joint, j'ai également mis un fichier gnu_verif_Orgeasv1_vs_Orgeasv2 qui montre une comparaison des lois v1 et v2 pour 3 modes différents de chargement en déplacement imposés. Et donc a priori, ce sont bien des lois identiques (et de coef de Poisson compris dans [0.4:0.5] dans la gamme de chargement étudiée).
Remarque qui a peut-être son importance : ces lois convergent très bien en déplacement imposé. Le problème apparait en contrainte imposée.
Avec la 2ème version de loi, j'obtiens les isolignes suivantes :
aucun calcul ne diverge. Les isolignes sont "normales" (les portions manquantes ne viennent pas d'une divergence).
Et donc je tombe enfin sur un cas simple qui tendrait à montrer un possible problème à corriger dans la dépendance à Lode de ISOHYPER3DORGEAS2.
Je n'ai pas de piste particulière. J'ai pensé à 3 possibilités :
- je me trompe quelque part (paramètres dans le .info, étude convexité via isolignes de déf mises, etc...)
- un problème général (théorique ou erreur programmation) dans toutes les lois de Grenoble. Je n'ai pas tracé ici, mais les isolignes des graphes SIG11-SIG22 obtenues pour la loi Favier équivalente à MAT_Orgeas donne exactement le même problème de "pointes" en CU et TB (triangles de plus en plus pointus). J'y reviendrai demain pour compléter cet aspect. Je note par ailleurs que dans le cas MAT_Orgeas_Lode_CU_1p1TU, les cas de calcul qui divergent sont autour de CU et TB. Pas de divergence autour de TU et CS.
- tu m'avais mentionné certaines simplifications dans le code en ce qui concerne l'opérateur tangent de ISOHYPER3DORGEAS2 dépendant de Lode. Y a-t-il une amélioration possible sur ce point ?
à suivre
Fichiers