Anomalie #101
Erreur RESTART avec le critère PLISSEMENT_MEMBRANE (v6.746)
0%
Description
Lorsque je fais un RESTART avec le critère PLISSEMENT_MEMBRANE j'ai le message d'erreur suivant :
_ erreur de calcul sur les tenseurs HH *** dimension de l'argument = 3
erreur d'affectation, tenseur non symetrique, Tenseur3HH::Tenseur3HH ( TenseurHH &)
_
Cas test : 1/4 d'une plaque soumise à une pression (coussin gonflable). Je fais un premier calcul avec une précision grossière (0.1) et je fais un RESTART avec une précision inférieure.
Cette erreur n'apparait pas avec la loi LOI_CONTRAINTES_PLANES sans le critère plis.
Fichiers
Mis à jour par Frank Petitjean il y a plus de 8 ans
Il ne sagit pas d'un problème de RESTART mais d'un calcul en plusieurs incréments :
- avec le chargement total appliqué en 1 incrément le calcul converge.
- avec le chargement appliqué en 2 incréments le calcul plante au 2e incrément (et après quelques itérations)
Pour le 2e cas on peut soit demander un TEMPSFIN 2 (avec par défaut DELTAt 1) soit prendre DELTAt 0.5 avec TEMPSFIN 1
Le choix du typecharge ne modifie pas le comportement.
Mis à jour par Gérard Rio il y a plus de 8 ans
Bonjour Frank,
a priori cela provient de déplacement trop important. Une explication serait qu'initialement le premier calcul de la matrice de masse virtuelle, s'effectue via un matériau non plissé. Ensuite lorsque les plis apparaissent dans les deux sens certains noeuds n'ont plus aucune raideur, d'où on pourrait avoir une matrice de masse virtuelle qui comporte des 0.
J'ai repéré la possibilité de ce pb très dernièrement. Je vais donc ajouter une masse par défaut si ce cas apparaît.
Pour l'instant je suis en train d'introduire l'utilisation des variables globales pour le contrôle de la loi critère en fonction de l'avancement du calcul d'où de nombreuses modifs. Je ne pourrai intervenir qu'après la fin de la mise en place ... que j'espère proche !
Affaire donc à suivre,
Mis à jour par Frank Petitjean il y a plus de 8 ans
Gérard,
Je comprends ton explication mais quelle rapport avec la notion d'incrément ? Pourtant ce problème survient que lorsque je démarre le 2e incrément. Si j'impose le même chargement en un seul incrément le calcul tourne sans problème. As-tu observé le même comportement ?
Mis à jour par Gérard Rio il y a plus de 8 ans
oui, effectivement je ne comprends pas trop.
Au niveau de l'option de recalcule de la masse, dans ton cas, tu utilises option_recalcul_mass= 1 c-a-d que la masse est recalculée après chaque pic d'énergie. Peut-être que si tu utilisais le cas 0 (c-a-d que la masse est fixe) il n'y aurait pas de pb ?
Mis à jour par Frank Petitjean il y a plus de 8 ans
L'option_recalcul_mass= 1 améliore grandement la convergence. Sinon, lorsque je passe au 2e incrément, la norme passe de 0.09 (<0.1 demandé) à 2. à l'itération 2 de l'incrément.
Pour autant cela ne converge toujours pas au 2e incrément. Est-ce que cela pose un problème particulier de faire un 2e incrément de calcul sans incrément de charge. Par exemple le cas :
typecharge #------------
TYPE1 1.
controle #------------
TEMPSFIN 2
DELTAt 1
diverge. Par contre si j'impose :
typecharge #------------
TYPE1 2.
Cela converge.
Mis à jour par Gérard Rio il y a plus de 8 ans
oui, je ne vois aucun pb à faire un incrément de temps, sans changer le chargement. C'est par exemple une solution pour introduire des précisions différentes.
Mis à jour par Frank Petitjean il y a plus de 8 ans
C'est bien ce que j'imaginais et je l'utilise ce procédé également pour augmenter la précision après cout.
Pour autant, pourquoi si je mène le calcul en 1 incrément il converge et en 2 il diverge, tous les autres paramètres étant égaux par ailleurs. Peux-tu faire le test avec l'exemple du coussin ?
Cas 1, 1 incréùent : OK
typecharge #------------
TYPE1 1.0
controle #------------
TEMPSFIN 1
DELTAt 1
Cas 2, 2 incrément : divergence à l'incrément 2
typecharge #------------
TYPE1 2.0
controle #------------
TEMPSFIN 2
DELTAt 1
Mis à jour par Gérard Rio il y a plus de 8 ans
Frank
je viens de pouvoir effectuer un sondage en debug et effectivement , le pb vient du fait que l'application du critère entraine la nullité de certains termes de la matrice masse !!
Donc maintenant, il me reste à mettre une valeur minimale sur la matrice masse...
A priori il s'agit de noeuds qui n'ont aucune raideur, et qui ne subissent pas d'effort (en tout cas interne). Donc on doit pouvoir mettre n'importe quelle valeur.
Par contre s'ils subissent des efforts externes, là il y a pb, mais de toute manière il y aura forcément pb car quelle que soit la masse virtuelle, le matériau n'opposera aucun effort (statique) de réaction (car la contrainte interne est nulle).
Bon... je vais mettre une masse correspondante à la moyenne des masses...
On verra avec les résultats !!
Je mettrai une nouvelle version, mais elle sera de test, car le pilotage du critère est en cours (et j'approche du but !!)
@bientôt
Mis à jour par Frank Petitjean il y a plus de 8 ans
Gérard, est-ce que la matrice de masse est recalculée en début d'incrément, bien que le paramètre option_recalcul_mass= 0 ?
Si oui alors cela explique pourquoi au passage d'un incrément à l'autre (ou lors d'une reprise) le calcul diverge complètement avec une norme multipliée par 100 dès la 1ere itération.
Mis à jour par Frank Petitjean il y a plus de 8 ans
Merci Gérard pour ton travail actif. Je me suis senti assez désemparé ces 2 derniers jours face à ces comportements pour moi hiératiques car je n'ai pas de vision de ce qui ce passe en interne dans Herezh...
Mis à jour par Gérard Rio il y a plus de 8 ans
Je viens de faire la modif. La matrice masse maintenant n'a plus de 0, mais on a un chargement en pression sur toutes les faces et donc le noeud est chargé. Aussi avec la loi critère, pour un noeud qui est entouré d'éléments détendus, il n'y a pas d'équilibre possible et systématiquement il y a divergence.
Je vais regarder plus en détail, car je manque un peu de recul sur le problème.
De plus, on peut imaginer qu'en pilotant le critère on n'aurait peut-être plus ce problème.
A voir, je te tiens au courant,