Anomalie #213
Problème de convergence avec loi hyperélastique (Favier+Maheo)
Description
Gérard,
J'ai le cas d'un BSO (BAX) avec un maillage minimum de 20x1. Le calcul converge très vite pour toutes les lois HE déterminées par Julien sauf celle à +20°.
Il y a une erreur dans le calcul des contraintes planes double avec le message
_ LoiContraintesPlanesDouble::Calcul_et_Limitation2_h_b(..
**erreur: la deformation d'epaisseur dans V_a 1.12657) est superieur a 0.5_
Ce massage est d'ailleurs assez envahissant puisqu'il augmente considérablement la taille du fichier .log. Peut-il être désactivé ?
Cette erreur arrive dès la première itération de l'incrément courant, que la bascule entre les loi IE et HE se fasse en 1 incrément ou en 10.
Peux-tu voir ce qu'il se passe ? La loi Favier seule parait plus stable.
Ci-joint le cas test. Les différentes lois sont entre commentaires. L'amortissement mixte est verrouillé à cinétique et la direction des plis est recalculée à chaque itération.
Fichiers
Mis à jour par Gérard Rio il y a environ 5 ans
- Statut changé de Nouveau à Résolu
- % réalisé changé de 0 à 100
Je ne sais pas avec quelle version tu travailles. Avec la dernière version (sur ma machine !) V 6.915 je n'ai pas ces messages.
Suite au #209 j'ai modifié certains éléments des algos ce qui a pour conséquence d'éviter certaines divergences très franche (cf. #209) dans l'algo de Newton qui sert pour imposer les CP2. En particulier, par défaut, les variations de déformations d'une itération (de Newton CP2) à l'autre sont limitées à 10%
Ceci étant on peut quand même avoir des divergences et les messages vont apparaître.
On peut également (cf. doc) limiter suivant une valeur imposée par l'utilisateur, cette norme.
Concernant les messages eux-mêmes. Il est possible de gérer leur niveau (cf. doc) à l'aide du paramètre permet_affichage_ . Pour mémoire on peut choisir un niveau d'affichage différent pour toutes les lois internes et les algos de Newton.
Dans le cas où le paramètre permet_affichage_ n'est pas présent, c'est le niveau général d'affichage qui est utilisé et, concernant le message qui est mentionné, celui-ci est affiché dès que le niveau est > 0
Si on indique un paramètre permet_affichage_ différent de 0, c'est ce dernier qui prévaut. Dans ce cas dès qu'il est > 0 il y a affichage. Si on choisit un paramètre = -1 par exemple, dans ce cas il n'y aura plus aucun affichage !
Je vais en place la version V 6.915 pour linux . C'est une version de travail qui incorpore le nouvel algo qui permet de combiner des algos existants. Cela a engendré des modifs collatérales ...
NB: à la fin du calcul avec les fichiers déposés, j'obtiens le message suivant:
======================================================================
INCREMENT DE CHARGE : 3 intensite 1 t= 3 dt= 1
======================================================================
Erreur : (J_r(1)-3.)= -0.960941 est < 0. ! ce n'est pas possible avec les formules actuelles
Maheo_hyper::Calcul_dsigma_deps
passage dans la methode Sortie
erreur non identifiee sur l'algo de la resolution de (sig'22, sig'33, sig'12)=(0,0,0)
dernier_residu: 0, 0, 0
LoiContraintesPlanesDouble::Calcul_dsigma_deps (...
Erreur : (J_r(1)-3.)= -0.942956 est < 0. ! ce n'est pas possible avec les formules actuelles
Maheo_hyper::Calcul_dsigma_deps
a voir avec Julien, mais cela veut dire que le potentiel est négatif. Donc c'est normal qu'ensuite cela ne fonctionne pas. Je crois que Julien a déjà vu le pb. Normalement avec Favier et Orgéas on n'a pas ce pb.
Mis à jour par Julien Troufflard il y a environ 5 ans
L'ensemble des paramètres de la loi Maheo ont la signification d'une contrainte ou d'une pente. Ces paramètres sont positifs. Donc rien à chercher de ce côté-là.
Ensuite, le potentiel maheo utilise le premier invariant J_1. Le potentiel est une fonction de sqrt(J1-3). Sous une racine, J1 - 3 ne devrait jamais être négatif.
Frank et moi sommes incapable d'aller voir à l'intérieur des itérations Newton des lois CP et CP2. Donc impossible de remonter à l'origine du pourquoi cela a conduit a un J_1-3 inférieur à 0. Il faudrait connaitre par exemple les élongations qui correspondent à cet état de déformation.
Cette tournure "invariant_1"-3 est classique dans les potentiels hyperélastique. Si le terme -3 apparait, c'est bien que invariant_1 est sensé ne jamais descendre en dessous de 3. Pourquoi est-ce le cas là ? Si il est possible de répondre à cette question, alors cela résoudra sans doute aussi le cas mooney-rivlin et polynomiale.
(par exemple : est-ce que cela ne correspondrait-il pas un état de déformation similaire à un élément "retourné", i.e un jacobien négatif ?)
Mis à jour par Gérard Rio il y a environ 5 ans
1) "L'ensemble des paramètres de la loi Maheo ont la signification d'une contrainte ou d'une pente. Ces paramètres sont positifs. Donc rien à chercher de ce côté-là."
Sauf si les grandeurs qui sont multipliées aux paramètres, sont négatives. Par exemple on a mu2 * (j1-3) et bien si J1-3 est négatif cela donne un terme négatif qui s'il est plus grand en valeur absolue au premier terme du potentiel, cela va conduire à un potentiel négatif
2) "Ensuite, le potentiel maheo utilise le premier invariant J_1. Le potentiel est une fonction de sqrt(J1-3). Sous une racine, J1 - 3 ne devrait jamais être négatif."
J1 = I1 * (I3)**(-1/3) , I3 = g/g_0 c-a-d le rapport au carré du volume actuel /volume final et I1 = la somme des élongations au carré suivant les 3 directions.
A priori, il n'y a rien qui impose que systématiquement on ait J1 >= 3
Ceci étant, j'ai fait des tests avec différentes valeurs de lambda_i et on a toujours J1 >3 !!!
Du coup j'ai replongé dans le code et ... je crois que je viens de trouver un début d'explication :
La plupart des lois utilisent les déformations (et vitesse) pour déterminer les contraintes sauf les loi hyper de type Mooney Rivlin. Or, l'idée de la loi plis version 2 est de travailler dans le repère curviligne de travail pour éviter des changements de repères mais avec la particularité qu'on peut avoir une déformation "mécanique" qui peut ne pas être cohérente avec la métrique.
Dans le cas de Mooney-Rivlin, la variation de métrique est utilisée pour représenter la déformation du matériau (et non le tenseur de déformation incluant la def mécanique utilisée par exemple pour la loi de Hooke).
Dans le cas des lois Favier et Orgéas, c'est le tenseur de def qui est utilisé pour calculer les invariants donc a priori c'est normal que cela fonctionne.
Avec la loi plis 1, on redéfinit une métrique dans le repère ortho tourné. Donc ça peut expliquer pourquoi le cas plis 1 fonctionne mieux... mais à voir plus en détail.
Donc en résumé, pour l'instant avec la loi plis 2, je crois qu'il ne faut pas utiliser les lois avec invariants de type Mooney-Rivlin. Il y a un problème d'abord théorique et Il va falloir que j'y retravaille mais cela va prendre un peu de temps pour que je vois ce qui le plus ad hoc a réaliser et cela va devoir attendre après l'algo combiné qui est en cours actuellement.
3) accès aux informations locales: En jouant sur les différents niveaux d'affichage, on peut pratiquement avoir accès à toutes les informations (métriques, déformations, invariants, contraintes, incréments ...) bon... cela ne veut pas dire que ce soit simple, car cela génère énormément d'infos éventuellement redondantes...
Par exemple, avec permet_affichage_ > 4 en version non rapide, pour Mooney Rivlin il y a affichage des invariants en I et en J ainsi que leur dérivées