<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:st1="urn:schemas-microsoft-com:office:smarttags" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1256">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags"
 name="PersonName"/>
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:Arial;
        color:windowtext;}
@page Section1
        {size:595.3pt 841.9pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.Section1
        {page:Section1;}
 /* List Definitions */
 @list l0
        {mso-list-id:672535613;
        mso-list-type:hybrid;
        mso-list-template-ids:1145713736 67895297 67895299 67895301 67895297 67895299 67895301 67895297 67895299 67895301;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l1
        {mso-list-id:1073625478;
        mso-list-type:hybrid;
        mso-list-template-ids:795645936 67895297 67895299 67895301 67895297 67895299 67895301 67895297 67895299 67895301;}
@list l1:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
-->
</style>

</head>

<body lang=FR link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Bonjour,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Je me permets de vous contacter suite à une étude que j’ai effectuée
du code source de Gmsh.  <o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Pour rappel à Jean-François, nous nous sommes croisés à l’IMR
l’an passé. Je travaille au CEA sur l’activité maillage (hexaédrique surtout).
Dans le cadre de nos travaux actuels, nous développons une structure de données
de maillages en C++ à l’aide la programmation générique.  J’ai présenté un « short
note » sur cette structure à l’IMR, et je présente un papier plus long à l’ISGG
2009 à Montréal fin mai (suivi d’un papier journal pour la fin d’année avec
prise en compte du parallélisme et modèle théorique de maillage générique).<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Pour ce papier, nous avons regardé différentes structures de
données dont celle interne à Gmsh (outil que j’ai testé à titre personnel et
que j’apprécie beaucoup). Bref, notre étude est purement théorique et concerne
l’occupation mémoire potentielle de différentes structures (je vous joins le
papier où l’on parle de Gmsh page 11).  Au regard du code source, nous somme
arrivés à considérer que la structure de données utilisé dans Gmsh était
relativement minimale. Pour un cas 3D, seules les mailles (tetra, hexa,…) et
les nœuds sont représentés. Les nœuds n’ont aucune connaissance de leur
voisinage et les mailles sont simplement définies à partir des nœuds (pour les
algos type Delaunay, vous enrichissez votre représentation d’une structure qui
décore les mailles en ajoutant la connaissance des mailles voisines).<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Au vu des vos différentes classes et du fichier MElement.h (je
crois), nous sommes arrivés au calcul suivant pour un maillage
tétraédrique en configuration minimale:<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Un tetra est défini par<o:p></o:p></span></font></p>

<ul style='margin-top:0cm' type=disc>
 <li class=MsoNormal style='mso-list:l1 level1 lfo1'><font size=2 face=Arial><span
     style='font-size:10.0pt;font-family:Arial'>1 id (int)<o:p></o:p></span></font></li>
 <li class=MsoNormal style='mso-list:l1 level1 lfo1'><font size=2 face=Arial><span
     style='font-size:10.0pt;font-family:Arial'>1 flag (char)<o:p></o:p></span></font></li>
 <li class=MsoNormal style='mso-list:l1 level1 lfo1'><font size=2 face=Arial><span
     style='font-size:10.0pt;font-family:Arial'>4 pointeurs vers les nœuds<o:p></o:p></span></font></li>
 <li class=MsoNormal style='mso-list:l1 level1 lfo1'><font size=2 face=Arial><span
     style='font-size:10.0pt;font-family:Arial'>1 pointeur vers ce tetra à
     partir de <st1:PersonName ProductID="la GRegion" w:st="on">la GRegion</st1:PersonName>
     à discrétiser<o:p></o:p></span></font></li>
 <li class=MsoNormal style='mso-list:l1 level1 lfo1'><font size=2 face=Arial><span
     style='font-size:10.0pt;font-family:Arial'>1 pointeur vers une table
     virtuelle <o:p></o:p></span></font></li>
</ul>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Un nœud est défini par<o:p></o:p></span></font></p>

<ul style='margin-top:0cm' type=disc>
 <li class=MsoNormal style='mso-list:l0 level1 lfo2'><font size=2 face=Arial><span
     style='font-size:10.0pt;font-family:Arial'>1 id (int)<o:p></o:p></span></font></li>
 <li class=MsoNormal style='mso-list:l0 level1 lfo2'><font size=2 face=Arial><span
     style='font-size:10.0pt;font-family:Arial'>1 index (int) présent pour
     raison algorithmique<o:p></o:p></span></font></li>
 <li class=MsoNormal style='mso-list:l0 level1 lfo2'><font size=2 face=Arial><span
     style='font-size:10.0pt;font-family:Arial'>2 chars pour la visibilité et l’ordre
     du nœud <o:p></o:p></span></font></li>
 <li class=MsoNormal style='mso-list:l0 level1 lfo2'><font size=2 face=Arial><span
     style='font-size:10.0pt;font-family:Arial'>1 pointeur vers une table
     virtuelle<o:p></o:p></span></font></li>
</ul>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Si l’on considère que l’on est sur une machine 64bits,  après
alignement mémoire, on obtient pour un tetra, 7 x 64bits et pour un nœud 3 x 64bits.
Sachant que dans un maillage tetra, il y a environ 5 fois plus de tetras que de
nœuds, si n est le nombre de nœuds, on obtient<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>7x 5n + 3n = 38n x 64bits. <o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Ma question est donc de savoir si nous vous êtes d’accord
avec cela. Je voulais vous contacter plus tôt pour cela mais cela m’est
complètement sorti de la tête si jamais je me suis trompé, je n’hésiterai pas à
rectifier tout cela.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Merci d’avance pour votre réponse,<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>Franck Ledoux<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 face=Arial><span style='font-size:10.0pt;
font-family:Arial'>            <o:p></o:p></span></font></p>

</div>

</body>

</html>