Evolution #273
post-traitement gmsh: sortie aux pti via un maillage noeuds spécifique
Ajouté par Gérard Rio il y a presque 4 ans. Mis à jour il y a presque 4 ans.
0%
Description
L'idée est de pouvoir visualiser des grandeurs calculées aux pti, directement en des points particuliers et non via des isovaleurs via le maillage initial == noeuds sommet + interpolation des éléments finis.
Pour l'instant, seule la sortie maple permet d'accéder directement aux grandeurs calculées aux pti.
Par exemple, il peut-être intéressant de pouvoir visualiser exactement le repère d'anisotropie définie au pti.
Bon... l'idée est simple mais la mise en place, pas vraiment a priori...
Entre autres il faudrait:
- définir un nouveau maillage: a priori de type contenant que des éléments points. Chaque éléments points serait situé à un pti.
- sortir des valeurs à ces éléments points. Cela nécessite de définir de nouveaux fichiers de sortie
- mettre en place la définition interactive des choix de l'utilisateur et def du stockage des ces info dans le .CVisu
....
à suivre
Mis à jour par Julien Troufflard il y a presque 4 ans
j'ai vu qu'il y avait une réflexion concernant les grandeurs aux pti remontées aux noeuds. Effectivement, c'est source d'erreur. Deux exemples typiques d'erreur causée par la remontée aux noeuds :
1) quand on prend une loi avec critère pli, on se retrouve avec des contraintes négatives quand on affiche les contraintes dans Gmsh.
2) il arrive d'avoir des contraintes de Von Mises négatives dans Gmsh
parfois, je me dis que la solution serait juste de passer par un autre logiciel. Par exemple, il n'y a pas ce problème dans Gid puisqu'il affiche les grandeurs aux pti. Par contre, Gid est payant, donc pas accessible à tous.
Une autre solution serait peut-être de regarder du côté de Paraview qui est très célèbre. Je ne sais pas s'il fait le distinguo entre données aux noeuds et données aux pti (je me renseigne et je te dirai).
Mis à jour par Julien Troufflard il y a presque 4 ans
bon c'est pas direct pour Paraview. On peut définir des grandeurs aux points d'intégration mais paraview ne connait pas les fonctions d'interpolation des éléments (il faut les lui définir).
J'ai un vague souvenir que dans Gmsh on peut définir des grandeurs aux points d'intégration sous réserve de fournir les fonctions d'interpolation, donc a priori pareil que dans Paraview.
Mis à jour par Frank Petitjean il y a presque 4 ans
Bonjour Julien, Gérard,
Gid me semble un bon candidat et l'achat à vie n'est pas (trop) cher (580€). On peut aussi le louer au mois. Sûr qu'une solution Open source serait mieux mais est-ce que ça existe ? Peut-être du coté d'OpenCascade comme pour le code Aster...
Frank
Mis à jour par Gérard Rio il y a presque 4 ans
Bonjour,
merci pour vos contributions !!
cela rejoint bien les réflexions que j'ai eu, sauf concernant paraview que je n'avais pas trop approfondi: a priori ce ne semble pas être également la solution.
Je crois qu'en fait c'est normal que beaucoup de soft de post-traitement généraliste ne s'occupe pas de la remontée aux noeuds car l'intégration via des sommes discrètes est finalement spécifique au programme de simulation. En particulier un nombre de point de sommation n'indique pas à cout sûr le type de méthode de quadrature.
La méthode de Gauss est assez général (il en existe d'autre ! en particulier pour des fonctions non régulières) mais par exemple on peut avoir deux type différent d'intégration avec le même nombre de pti (ex: sur le triangle avec 3 pti). En plus si on utilise du Gauss-Lobatto on peut avoir d'autres cas similaires ...
Donc le fait de confier au programme éléments finis, la remontée aux noeuds est assez logique.
Gid intègre les cas classiques de Gauss ce qui simplifie la chose pour ces cas classiques, mais ne résoud pas le pb pour les autres cas.
De plus on ne sait pas exactement ce qui est fait dans Gid car de toute manière on aura un résultat au noeud différent suivant l'élément que l'on considère (auquel appartient le noeud) donc ensuite:
- est-ce que Gid colorie indépendamment: élément par élément ? par le passé, j'ai déjà essayé ce cas, cela donne un arlequin et finalement ce n'est pas très exploitable
- est-ce que Gid prend la moyenne ? le Max ? le min ??
Bref, j'ai l'impression qu'il risque d'y avoir toujours une interrogation sur des cas litigieux.
Pour ma part j'ai fait des essais en comparant avec abaqus sur le cas d'une poutre encastrée soumise à un effort à une extrémité et je regarde le maxi à l'encastrement de la contrainte.
Et bien je me suis aperçu qu'abaqus ne donnait pas de très bon résultat (cf. partie théorique d'Herezh). Mais qu'également Herezh n'était pas bon si je retenais la méthode initialement implantée pour les éléments volumiques à savoir prendre la valeur du pti le plus proche.
Par ailleurs si on utilise une extrapolation quadratique, cubique etc. j'ai cru lire que lorsque l'on avait une distorsion importante de l'élément (par exemple) cela pouvait conduire à de mauvaises extrapolations.
Du coup j'ai choisit de retenir systématiquement une extrapolation linéaire à l'aide de l'ensemble des pti les plus proches du noeud.
Dans le cas de l'élément hexaédrique, j'obtiens alors de très bons résultats comparé avec la solution analytique dans le cas infinitésimal, et bien meilleur que ceux d'abaqus.
Bon... peut-être qu'avec des paramètres particuliers, abaqus sortirait également de très bons résultats... je ne suis pas spécialiste et ce n'est pas le pb.
Bref compte tenu de ce contexte... j'ai pour objectif d'étendre la méthode à tous les éléments volumiques et en passant de les comparer sur mon cas test en espérant qu'il soit suffisamment représentatif: à l'encastrement et au maxi, on a un double gradient: dans la hauteur et la longueur de la poutre ce qui est assez sévère...mais il y aura sans doute forcément des limitations.
Mais.... il n'en reste pas moins que cette méthode ne permet pas d'avoir les résultats exacts issus du calcul et cela m’embête.
exemple: comment montrer les directions des plis qui sont initialement calculées au niveau des pti. Le fait de faire ensuite une moyenne au noeud tend à définir une zone plissée qui est plus grande que la zone réelle !!
Idem si on veut représenter les directions d'anisotropie.
Pour les directions principales des tenseurs, aimerait bien également les avoir exactement au pti.
Ceci étant, ces infos existent dans Herezh et peuvent être déjà sortie via le format maple, mais on n'a pas directement une visualisation graphique ...
donc donc, la solution que je vois c'est :
- créer un nouveau maillage composé uniquement d'élément "points" dont les coordonnées sont celles des pti
- sortir les infos que l'on veut sur ce nouveau maillage.
Du coup,
. pour la visualisation de vecteur, ce sera immédiat : a priori parfaitement lisible,
. pour la visualisation de scalaire, c'est moins immédiat! mais avec gmsh on peut:
-> choisir de visualiser des chiffres: si on zoom sur une petite région où il y a pb, ça peut être lisible et intéressant
-> choisir des iso + grossir la taille des points : cela devrait donner quelque chose de lisible globalement... j'ai déjà utilisé cette méthode dans du post-traitement de grandeur issue de corrélation, et c'était pas mal du tout .... bon cela reste à confirmer.
Dans tous les cas cela viendra en complément de la visualisation actuelle via l'extrapolation qui elle est bien taillée pour visualiser des isovaleurs. La sortie au pti serait surtout intéressante pour voir s'il n'y a pas des particularités.
Donc voilà où j'en suis au niveau de la réflexion !!
Mis à jour par Gérard Rio il y a presque 4 ans
j'ai oublié une réflexion concernant gid.
1) cela fait ... 3 ou 4 fois que l'on achète une version de gid et à chaque fois, finalement on abandonne ...
Au début je me disais qu'un point très positif était le fait d'avoir un modeleur intégré ... depuis, gmsh intègre directement opencascade ce qui étend ses possibilités avec le volumique en général et avec freecad par exemple en particulier. Du coup, le coté pré de gid est un peu moins intéressant.
2) au niveau maillage réglé c'est beaucoup plus facile qu'avec gmsh, mais finalement je suis arrivé à faire des choses pas mal du tout avec gmsh
3) C'est vrai que l'on peu acheter un version à vie de gid mais ... l'expérience montre :
a) quand on change de machine, on ne peut pas réutiliser la version déjà achetée car elle est attachée à des numéros spécifiques de la vielle machine, et les vendeurs refusent de redonner une licence (du vécu !!)
b) - de mémoire j'ai eu de pb de compatibilité entre versions ...
Ceci étend je pense que c'est quand même un bon outil mais que finalement je n'utilise pas !
Mis à jour par Julien Troufflard il y a presque 4 ans
tiens c'est marrant, code aster ils ont choisi d'éclater le maillage pour visualiser les valeurs non lissées aux pti (et d'en faire une sortie Gmsh) :
extrait de la doc du mot-clé :
""""
Permettre une visualisation des champs aux points de Gauss sans lissage ni interpolation.Le principe de cette commande est d’éclater chaque élément du modèle en autant de petits élémentsqu'il possède de points de Gauss. Chaque sous-élément porte alors un champ constant par maille : lavaleur du point de Gauss
""""
Ce choix qui donne des arlequins est néanmoins un choix judicieux pour post-traiter graphiquement un résultat de calcul et s'en servir pour du dimensionnement. Beaucoup ont tendance à regarder des isovaleurs lissées et s'en servir pour alimenter un rapport. Alors que les vraies valeurs sont aux pti. Par exemple, lors d'un passage chez un éminent fabriquant de bateaux tout gris et très lourds, j'ai constaté qu'ils faisaient le choix de regarder les isovaleurs au centroid. Ce qui est à mon avis moins bien qu'aux pti mais quand meme mieux que sur un lissage erroné moyenné à 75% corrigé par l'age du capitaine.
Mis à jour par Gérard Rio il y a presque 4 ans
donc si je comprends bien, ce que je compte faire est un peu dans l'idée de code aster.
Pour l'arlequin, c'est juste une mauvaise expérience que j'ai eu, je ne dis pas que c'est toujours mauvais.
Avec des valeurs aux pti, on pourra peut-être se faire une idée plus précise.
à suivre !
Une remarque:
il est actuellement possible de demander à Herezh dans la sortie maple, de sortir les min, max, moyenne etc. sur une référence.
Du coup, en choisissant E_tout, on peut immédiatement avoir par exemple le max de la contrainte de Mises aux pti, et là c'est le résultat exact au pti. De plus on obtient le numéro du noeud où il y a le maxi, et on peut éventuellement regarder sur gmsh où il se situe.
Personnellement je trouve cela très pratique, en particulier lorsque l'on veut un traitement automatique sans utiliser gmsh.
Enfin, c'est beaucoup plus rapide qu'une sortie gmsh ...