Anomalie #243
pb de stabilité éléments triangle et amortissement visqueux
0%
Description
Gérard,
je suis tombé sur un exemple où le calcul perd sa stabilité au voisinage d'éléments triangle (parmi des éléments quadrangle).
Le calcul est un gonflement d'un dome par une pression uniforme. Le dome a été maillé avec stamm (donc des éléments quadrangle partout sauf au sommet du dome où se trouve des triangles).
Je fais une transition amortissement cinétique / visqueux. Les 0.8 première seconde, le calcul est en amortissement cinétique. Puis bascule en visqueux pour les 0.2 seconde restante.
J'ai enclenché le mode_debug pour faire une sortie Gmsh toutes les 2 itérations.
Il y a une perte de stabilité qui finit par distordre le sommet du dome. ça commence à légèrement osciller à partir de l'itération 634, ça devient vraiment visible à partir de 637 et la perte de stabilité est totale à partir de 643.
A noter que :
- ce calcul passe très bien en pur amortissement cinétique (avec lambda égal 0.6)
- que la fonction "fonct_lambda" qui gère le lambda indique un lambda de 0.6 en cinétique et une valeur très grande de 4 en visqueux (j'ai essayé 1.2, 2 et 4). Malgré ce fort lambda, cela ne rétablit pas la stabilité
Fichiers
Mis à jour par Julien Troufflard il y a plus de 4 ans
petite précision : ce cas me semblait intéressant parce qu'il pourrait permettre de comprendre l'étrange problème de stabilité du visqueux par rapport au cinétique. On ne comprend pas pourquoi d'une manière générale le calcul visqueux demande un lambda au moins 2 fois plus grand qu'en cinétique. Si ce cas particulier permet d'avancer là-dessus tant mieux.
Mis à jour par Julien Troufflard il y a plus de 4 ans
- Fichier exemple_pb_stabilite_2.tar exemple_pb_stabilite_2.tar ajouté
voici un second exemple de calcul qui manque de stabilité. Cette fois c'est un maillage 100% quadrangle. C'est la même mise en données que précédemment avec cependant une précision fixée à 1e-5 au lieu de 1e-4.
mes observations :
- le calcul passe très bien en 100% amortissement cinétique
- le calcul passe très bien en 100% amortissement visqueux
- le calcul ne passe pas bien en basculement cinétique/visqueux. Même observation que mon cas précédent (calcul qui oscille puis explose) excepté que la zone d'instabilité change. Ce n'est plus au sommet du dome, mais cette fois c'est non loin de la zone la plus mal maillée au sens ratio d'aspect d'élément)
Le fait que cela passe en 100% visqueux pose déjà pas mal question...
Mis à jour par Gérard Rio il y a plus de 4 ans
- Statut changé de Nouveau à En cours
Bonjour Julien
je vais regarder dès que possible mais je suis pris par plusieurs trucs qui se télescopent...du coup il faut un peu attendre !
bon... à suivre
Mis à jour par Anonyme il y a plus de 4 ans
- Fichier etude_garcia.pdf etude_garcia.pdf ajouté
Bonjour Julien et Gérard,
J'ai regardé tes deux tests Julien et voici ce que j'ai pu trouver : (je vais essayer de synthétiser)
1- Dans un premier temps, j'ai tout comme toi modifié la valeur du paramètre lambda en visqueux pour essayer d'arriver à la précision souhaitée (selon le cas maillage triangulaire ou le cas quadrangle). En effet, dans les deux exemples cela n'a pas vraiment d'effet bénéfique ... Dans tes calculs, on remarque que le calcul en visqueux se passe relativement bien jusqu'à une précision très faible c'est comme si le calcul divergeait quand il arrive vers la précision demandée ... Néanmoins, il faut tout de même se rappeler de l'étude de J. Garcia qui a montré que pour un calcul identique à une précision identique le lambda du visqueux doit être augmenté pour des précisions faibles (cf graphique élude Garcia pdf).
2- J'ai augmenté légèrement le lambda du cinétique (de base à 0.6 je le passe à 0.7). Explication: quand je testais l'amortissement mixte je basculais dans un même pas de temps d'un amortissement à un autre (c'est un peu différent que tes exemples). Donc la solution calculée en cinétique basculait pouvait avoir des répercussions sur la stabilité du visqueux derrière. Dans mes cas, je basculais à des précisions plus grossières que celle que tu demandes dans les exemples (10-4 et 10-5 dans tes cas et moi je basculais entre 10-2 à 5.10-4 pour aller à une précision finale de 10-3 à 10-4). Bref, tout ça pour dire que j'ai gardé le même raisonnement et dans les deux cas lorsque que le lambda du cinétique est légèrement augmenté (0.65 même) et bien la solution visqueuse converge derrière. C'est assez étrange, car la précision que tu demandes à la step 1 (0--> 0.8) pour le cinétique est quand même très fine donc je trouve bizarre que le lambda du cinétique soit aussi important pour le visqueux ...
3-J'ai ensuite modifié un peu le déroulement de ton calcul en basculant du cinétique vers le visqueux dans les deux étapes de calcul et le calcul converge avec le lambda cinétique égale à 0.6.
Bon ça veut dire que c'est possible de le faire ...
4- En voyant l'utilisation que tu faisais de l'amortissement mixte (1 step en cinétique et une step en visqueux), j'ai tenté de le faire avec l'algorithme combiné (tu choisis les altos à utiliser au cours d'un calcul et tu peux dire à Herezh quand utiliser un algo ou un autre). Dans ton cas, j'ai choisi RD+amortissement cinétique et RD+ amortissement visqueux (j'utilise le type 4 de relaxation dans lequel je choisis la proportion égale à 1 ou 0 pour les deux types d'amortissement. Avec tes paramètres de RD initiale, le calcul converge ... Mais, la convergence en RD+ amortissement cinétique est légèrement différente que quand dans ton cas (et pourtant j'utilise les mêmes paramètres des algorithmes que toi ...) une différence de 5 itérations (faible mais qui semble avoir un impact...)
5- Je reprends ton cas en faisant que du cinétique (type RD 1 et non plus 4), je trouve la même convergence en RD+ amortissement cinétique (Type 4! OUF) --> la convergence qui semble être la bonne est celle que tu avais : le problème vient de l'algorithme combinatoire d'Herezh (bizarre).
6- Je fais donc un algorithme combinatoire (comme celui du point 4) mais j'utilise directement le type de relaxation =1 pour l'amortissement cinétique et type=2 pour l'amortissement visqueux!! Je trouve la même convergence que toi et en plus je converge en visqueux derrière (la je ne comprenais plus rien… ). Après réflexion, je me rappelle qu'au début des algorithmes combinés l'amortissement mixte posait problème et Gérard avait modifié des choses au niveau de l'algorithme (peut-être une piste pour toi Gérard ???)
la réunion commence et je mets déjà ça (je complète après)
Mis à jour par Julien Troufflard il y a plus de 4 ans
merci Hugo pour ces recherches. Donc si j'ai bien compris, il y a un bug à trouver dans le cas d'un passage cinétique à visqueux du même type que le bug qui a été réparé dans le cas d'un algo combiné.
j'espère que cette piste est la bonne.
Hugo, peux-tu me passer un exemple d'algo combiné. Je suis intéressé. ça me tente bien de commencer en cinétique puis terminer en visqueux pour chaque incrément.