<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Texte brut Car";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
span.TextebrutCar
        {mso-style-name:"Texte brut Car";
        mso-style-priority:99;
        mso-style-link:"Texte brut";
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="FR" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoPlainText">Dear Achille,<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><span lang="EN-US">As is, your script is already meshing the hole/inclusion volumes. Do you wish to produce two mesh files, one with the "cheese" mesh and the other with the inclusion mesh ? If that is the case, you can comment out the
 line <i>Physical Volume (t) = thehole ; </i>run the model once, save the mesh, this will give you the “cheese” mesh. Then uncomment that line and comment out
<i>Physical Volume (10) = 100 ;</i> and you should get the inclusions only.<o:p></o:p></span></p>
<p class="MsoPlainText"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoPlainText"><span lang="EN-US">Faithfully yours,<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-family:"Tahoma",sans-serif;color:#000099;mso-fareast-language:FR">Guillaume DILASSER</span><span style="font-size:10.0pt;font-family:"Tahoma",sans-serif;color:#000099;mso-fareast-language:FR"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:#000099;mso-fareast-language:FR">Doctorant SACM / LEAS<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:#000099;mso-fareast-language:FR">CEA - Centre de Saclay - Bât.123 - PC 319c</span><span style="color:#000099;mso-fareast-language:FR"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:#000099;mso-fareast-language:FR">91191 Gif sur Yvette Cedex - France -</span><span style="color:#000099;mso-fareast-language:FR"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:#000099;mso-fareast-language:FR"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:#000099;mso-fareast-language:FR"><a href="mailto:guillaume.dilasser@cea.fr"><span style="color:blue">guillaume.dilasser@cea.fr</span></a><o:p></o:p></span></p>
<p class="MsoPlainText"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoPlainText"><span style="mso-fareast-language:FR">-----Message d'origine-----<br>
De : gmsh [mailto:gmsh-bounces@ace20.montefiore.ulg.ac.be] De la part de Achille Pluplu<br>
Envoyé : jeudi 30 mars 2017 18:44<br>
À : gmsh@onelab.info<br>
Objet : [Gmsh] Swiss cheese with filled cavities</span></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Dear all,<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">I'm quite new to GMSH so, please, be patient.<o:p></o:p></p>
<p class="MsoPlainText">I need to create a 3D mesh of a cube that include some inclusions<o:p></o:p></p>
<p class="MsoPlainText">(spheres) of a different material.<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">I could find the following script that generates a cube with 5 cavities, but how can I mesh also the inclusions? In particular I need two well separated meshes, one for the "cheese" the other for the inclusions<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Thanks a lot for helping!<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Function CheeseHole<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">   // In the following commands we use the reserved variable name<o:p></o:p></p>
<p class="MsoPlainText">   // `newp', which automatically selects a new point number. This<o:p></o:p></p>
<p class="MsoPlainText">   // number is chosen as the highest current point number, plus<o:p></o:p></p>
<p class="MsoPlainText">   // one. (Note that, analogously to `newp', the variables `newc',<o:p></o:p></p>
<p class="MsoPlainText">   // `news', `newv' and `newreg' select the highest number amongst<o:p></o:p></p>
<p class="MsoPlainText">   // currently defined curves, surfaces, volumes and `any entities<o:p></o:p></p>
<p class="MsoPlainText">   // other than points', respectively.)<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">   p1 = newp; Point(p1) = {x,  y,  z,  lcar3} ;<o:p></o:p></p>
<p class="MsoPlainText">   p2 = newp; Point(p2) = {x+r,y,  z,  lcar3} ;<o:p></o:p></p>
<p class="MsoPlainText">   p3 = newp; Point(p3) = {x,  y+r,z,  lcar3} ;<o:p></o:p></p>
<p class="MsoPlainText">   p4 = newp; Point(p4) = {x,  y,  z+r,lcar3} ;<o:p></o:p></p>
<p class="MsoPlainText">   p5 = newp; Point(p5) = {x-r,y,  z,  lcar3} ;<o:p></o:p></p>
<p class="MsoPlainText">   p6 = newp; Point(p6) = {x,  y-r,z,  lcar3} ;<o:p></o:p></p>
<p class="MsoPlainText">   p7 = newp; Point(p7) = {x,  y,  z-r,lcar3} ;<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">   c1 = newreg; Circle(c1) = {p2,p1,p7};<o:p></o:p></p>
<p class="MsoPlainText">   c2 = newreg; Circle(c2) = {p7,p1,p5};<o:p></o:p></p>
<p class="MsoPlainText">   c3 = newreg; Circle(c3) = {p5,p1,p4};<o:p></o:p></p>
<p class="MsoPlainText">   c4 = newreg; Circle(c4) = {p4,p1,p2};<o:p></o:p></p>
<p class="MsoPlainText">   c5 = newreg; Circle(c5) = {p2,p1,p3};<o:p></o:p></p>
<p class="MsoPlainText">   c6 = newreg; Circle(c6) = {p3,p1,p5};<o:p></o:p></p>
<p class="MsoPlainText">   c7 = newreg; Circle(c7) = {p5,p1,p6};<o:p></o:p></p>
<p class="MsoPlainText">   c8 = newreg; Circle(c8) = {p6,p1,p2};<o:p></o:p></p>
<p class="MsoPlainText">   c9 = newreg; Circle(c9) = {p7,p1,p3};<o:p></o:p></p>
<p class="MsoPlainText">   c10 = newreg; Circle(c10) = {p3,p1,p4};<o:p></o:p></p>
<p class="MsoPlainText">   c11 = newreg; Circle(c11) = {p4,p1,p6};<o:p></o:p></p>
<p class="MsoPlainText">   c12 = newreg; Circle(c12) = {p6,p1,p7};<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">   // We need non-plane surfaces to define the spherical holes. Here we<o:p></o:p></p>
<p class="MsoPlainText">   // use ruled surfaces, which can have 3 or 4 sides:<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">   l1 = newreg; Line Loop(l1) = {c5,c10,c4};   Ruled Surface(newreg) = {l1};<o:p></o:p></p>
<p class="MsoPlainText">   l2 = newreg; Line Loop(l2) = {c9,-c5,c1};   Ruled Surface(newreg) = {l2};<o:p></o:p></p>
<p class="MsoPlainText">   l3 = newreg; Line Loop(l3) = {c12,-c8,-c1}; Ruled Surface(newreg) = {l3};<o:p></o:p></p>
<p class="MsoPlainText">   l4 = newreg; Line Loop(l4) = {c8,-c4,c11};  Ruled Surface(newreg) = {l4};<o:p></o:p></p>
<p class="MsoPlainText">   l5 = newreg; Line Loop(l5) = {-c10,c6,c3};  Ruled Surface(newreg) = {l5};<o:p></o:p></p>
<p class="MsoPlainText">   l6 = newreg; Line Loop(l6) = {-c11,-c3,c7}; Ruled Surface(newreg) = {l6};<o:p></o:p></p>
<p class="MsoPlainText">   l7 = newreg; Line Loop(l7) = {-c2,-c7,-c12};Ruled Surface(newreg) = {l7};<o:p></o:p></p>
<p class="MsoPlainText">   l8 = newreg; Line Loop(l8) = {-c6,-c9,c2};  Ruled Surface(newreg) = {l8};<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">   // We then store the surface loops identification numbers in a list<o:p></o:p></p>
<p class="MsoPlainText">   // for later reference (we will need these to define the final<o:p></o:p></p>
<p class="MsoPlainText">   // volume):<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">   theloops[t] = newreg ;<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">   Surface Loop(theloops[t]) = {l8+1,l5+1,l1+1,l2+1,l3+1,l7+1,l6+1,l4+1};<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">   thehole = newreg ;<o:p></o:p></p>
<p class="MsoPlainText">   Volume(thehole) = theloops[t] ;<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Return<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">lcar3 = .055;<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">hloc = 0.1;<o:p></o:p></p>
<p class="MsoPlainText">Point(1) = {0, 0, 0, hloc};<o:p></o:p></p>
<p class="MsoPlainText">Point(2) = {1, 0, 0, hloc};<o:p></o:p></p>
<p class="MsoPlainText">Point(3) = {1, 1, 0, hloc};<o:p></o:p></p>
<p class="MsoPlainText">Point(4) = {0, 1, 0, hloc};<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Point(5) = {0, 0, 1, hloc};<o:p></o:p></p>
<p class="MsoPlainText">Point(6) = {1, 0, 1, hloc};<o:p></o:p></p>
<p class="MsoPlainText">Point(7) = {1, 1, 1, hloc};<o:p></o:p></p>
<p class="MsoPlainText">Point(8) = {0, 1, 1, hloc};<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Line(1) = {1,2};<o:p></o:p></p>
<p class="MsoPlainText">Line(2) = {2,3};<o:p></o:p></p>
<p class="MsoPlainText">Line(3) = {3,4};<o:p></o:p></p>
<p class="MsoPlainText">Line(4) = {4,1};<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Line(5) = {5,6};<o:p></o:p></p>
<p class="MsoPlainText">Line(6) = {6,7};<o:p></o:p></p>
<p class="MsoPlainText">Line(7) = {7,8};<o:p></o:p></p>
<p class="MsoPlainText">Line(8) = {8,5};<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Line(9)  = {1,5};<o:p></o:p></p>
<p class="MsoPlainText">Line(10) = {2,6};<o:p></o:p></p>
<p class="MsoPlainText">Line(11) = {3,7};<o:p></o:p></p>
<p class="MsoPlainText">Line(12) = {4,8};<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">// bottom<o:p></o:p></p>
<p class="MsoPlainText">Line Loop(21) = {-1,-4,-3,-2};<o:p></o:p></p>
<p class="MsoPlainText">Plane Surface(31) = {21} ;<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">// top<o:p></o:p></p>
<p class="MsoPlainText">Line Loop(22) = {5,6,7,8};<o:p></o:p></p>
<p class="MsoPlainText">Plane Surface(32) = {22} ;<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">// left<o:p></o:p></p>
<p class="MsoPlainText">Line Loop(23) = {1,10,-5,-9};<o:p></o:p></p>
<p class="MsoPlainText">Plane Surface(33) = {23} ;<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">// right<o:p></o:p></p>
<p class="MsoPlainText">Line Loop(24) = {12,-7,-11,3};<o:p></o:p></p>
<p class="MsoPlainText">Plane Surface(34) = {24} ;<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">// front<o:p></o:p></p>
<p class="MsoPlainText">Line Loop(25) = {2,11,-6,-10};<o:p></o:p></p>
<p class="MsoPlainText">Plane Surface(35) = {25} ;<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">// back<o:p></o:p></p>
<p class="MsoPlainText">Line Loop(26) = {9,-8,-12,4};<o:p></o:p></p>
<p class="MsoPlainText">Plane Surface(36) = {26} ;<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">// We can use a `For' loop to generate five holes in the cube:<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">x = 0 ; y = 0.75 ; z = 0 ; r = 0.09 ;<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">For t In {1:5}<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">   x += 0.166 ;<o:p></o:p></p>
<p class="MsoPlainText">   z += 0.166 ;<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">   // We call the `CheeseHole' function:<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">   Call CheeseHole ;<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">   // We define a physical volume for each hole:<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">   Physical Volume (t) = thehole ;<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">   // We also print some variables on the terminal (note that, since<o:p></o:p></p>
<p class="MsoPlainText">   // all variables are treated internally as floating point numbers,<o:p></o:p></p>
<p class="MsoPlainText">   // the format string should only contain valid floating point format<o:p></o:p></p>
<p class="MsoPlainText">   // specifiers like `%g', `%f', '%e', etc.):<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">   Printf("Hole %g (center = {%g,%g,%g}, radius = %g) has number %g!", t, x, y, z, r, thehole) ;<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">EndFor<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">theloops[0] = newreg ;<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Surface Loop(theloops[0]) = {31,32,33,34,35,36};<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Volume(100) = {theloops[]};<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">Physical Volume (10) = 100 ;<o:p></o:p></p>
<p class="MsoPlainText"><o:p> </o:p></p>
<p class="MsoPlainText">_______________________________________________<o:p></o:p></p>
<p class="MsoPlainText">gmsh mailing list<o:p></o:p></p>
<p class="MsoPlainText"><a href="mailto:gmsh@onelab.info"><span style="color:windowtext;text-decoration:none">gmsh@onelab.info</span></a><o:p></o:p></p>
<p class="MsoPlainText"><a href="http://onelab.info/mailman/listinfo/gmsh"><span style="color:windowtext;text-decoration:none">http://onelab.info/mailman/listinfo/gmsh</span></a><o:p></o:p></p>
</div>
</body>
</html>