[Gmsh] Questions concernant des ajouts de code à Gmsh

nicolas kowalski kowalski.nico at gmail.com
Thu Feb 25 13:41:10 CET 2010


Bonjour,

Je suis actuellement en projet de master II sous la tutelle de Franck
Ledoux. Dans le cadre de ce travail, nous sommes amenés à étudier la
création de champs de vecteurs représentant la "directionnalité" d'une
géométrie. Notre but est de créer, pour chaque vertex d'un maillage
triangulaire de fond (tetrahédrique en 3D), un couple de vecteurs (trio en
3D), représentant chacun une direction, tels que, au bord, ils correspondent
à la normale et aux tangentes principales en ce point, et que leur évolution
dans la géométrie soit continue. Pour visualiser les résultats fournis par
l'algorithme, nous souhaitons utiliser Gmsh. Je souhaiterais vous poser
quelques questions à ce sujet, et vous demander votre avis sur un certain
nombre de points.

Premièrement, l'algorithme à tester étant de taille relativement modeste,
nous souhaiterions éviter, si possible, d'avoir à utiliser Gmsh en tant que
librairie ; pour ce que j'ai compris du code, il est possible de rajouter un
plugin contenant mon algorithme au code de Gmsh sans utiliser Gmsh en tant
que librairie, mais comme programme principal. Est-ce réellement le cas ? Et
si oui, quelles sont les différentes parties du programme où il faut
enregistrer ce plugin pour pouvoir l'utiliser dans un script ? Et pour qu'il
soit disponible sous forme de bouton dans l'interface graphique ?

Deuxièmement : j'aimerais vous demander certaines précisions concernant les
champs de vecteurs utilisées en post-processing : il me semble, pour ce que
j'ai compris du code, qu'il soit possible de stocker des vecteurs liés à des
points dans PViewDataList ; en particulier, VP me semble être une liste de
vecteurs associés à des points, stockés sous la forme : coordX du point 1,
coordY du point 1, coordZ du point 1, valeurX du vecteur en ce point,
valeurY du vecteur en ce point, valeurZ du vecteur en ce point, coordX du
point 2, coordY du point 2, coordZ du point 2, valeurX du vecteur en ce
point, valeurY du vecteur en ce point, valeurZ du vecteur en ce point,
etc... Ai-je bien compris le principe ? doit-on nécessairement faire
correspondre ces points à des points du maillage ? si l'on souhaite faire
correspondre des vecteurs à des triangles, par exemple, comment sont
stockées ces valeurs dans VT ? De plus, vu que je souhaite utiliser un trio
de vecteurs en 3D, je me suis demandé si l'utilisation d'un tenseur ne
serait pas plus simple ; cependant, mes vecteurs ne seront probablement pas
orthogonaux les uns aux autres ; est-ce un problème de stocker trois
vecteurs quelconques dans une matrice de tenseur ?

Dernier point, je souhaite ensuite afficher ces vecteurs en chaque point ;
il me semble que pour cela, j'ai à créer une vue de postprocessing ayant
pour data mon champ de vecteur comme décrit au point précédent, dans ce cas,
comment fais-je pour afficher ces valeurs, aussi bien dans le cas d'une
géométrie 2D que 3D ? avec draw2D et draw3D respectivement ?

Je vous remercie d'avance pour les réponses que vous pourrez me fournir,
ainsi que pour toute remarque pouvant m'aider à mieux comprendre le
fonctionnement du code de gmsh.

Cordialement,

Nicolas Kowalski
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.geuz.org/pipermail/gmsh/attachments/20100225/50b52927/attachment.html>