<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252">
</head>
<body>
<p><font face="Source Sans Pro">Hi Christophe,</font></p>
<p><font face="Source Sans Pro">Thank you for the quick response. I
wouldn't feel very comfortable emailing OpenCascade developers
since I didn't know their project's existence until a google
search 5 minutes ago – I wouldn't know how to describe the
problem properly to them, seeing that the gmsh–</font><font
face="Source Sans Pro">OpenCascade connection is but a black box
to me, as a naive new user of the program. I would assume
they'll have heard of the underlying problem though, if this is
a common operation?</font></p>
<p><font face="Source Sans Pro">I'd appreciate if there's a possible
workaround to circumvent this issue from the gmsh side, but
otherwise I'll have to hope the little glitches don't have a
serious effect on the results (the results do seem fine).</font></p>
<p><font face="Source Sans Pro">Best regards,</font></p>
<p><font face="Source Sans Pro">baptiste<br>
</font></p>
<p><font face="Source Sans Pro"><br>
</font></p>
<div class="moz-cite-prefix">On 20/04/20 9:22 pm, Christophe
Geuzaine wrote:<br>
</div>
<blockquote type="cite"
cite="mid:D37AAA4A-1F7F-4E33-BD38-3F27D5D702AE@uliege.be">
<pre class="moz-quote-pre" wrap="">
Hi Baptiste,
The issue is with the geometry: OpenCASCADE seems to generate invalid surfaces, that extend outside of the bounding curves. You can check by showing the STL mesh generated by OpenCASCADE itself, e.g. for surface 129.
You could send the attached bug.brep to the OpenCASCADE developers so they can have a look.
Christophe
</pre>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">
</pre>
<blockquote type="cite">
<pre class="moz-quote-pre" wrap="">On 20 Apr 2020, at 10:16, baptiste auguie <a class="moz-txt-link-rfc2396E" href="mailto:auguieba@gmail.com"><auguieba@gmail.com></a> wrote:
Hi,
I'm very new to the program so I may well have overlooked something basic. I adapted one of the examples for constructive geometry with boolean union between a central sphere and a number of conical spikes. I end the shape by rounding off sharp edges with a fillet, but when inspecting the mesh visually I find some strange irregularities where fillet was applied (and applying Smooth 2D doesn't seem to be enough to smoothen them out).
Thankfully the model doesn't seem too bothered by this and produces reasonable results; I'd still be keen to know if the mesh could be improved. I attach the geo file as well as a rendering of the structure for clarity.
Best regards,
baptiste
----
geo file
//+
SetFactory("OpenCASCADE");
Mesh.CharacteristicLengthMin = 0.001;
Mesh.CharacteristicLengthMax = 0.005;
Sphere(1) = {0, 0, 0, 0.030, -Pi/2, Pi/2, 2*Pi};
Cone(2) = {0, 0, 0, -0.043, 0.01, -0.01, 0.015, 0.003, 2*Pi};
Cone(3) = {0, 0, 0, -0.038, -0.024, 0, 0.015, 0.003, 2*Pi};
Cone(4) = {0, 0, 0, -0.034, 0.022, 0.02, 0.015, 0.003, 2*Pi};
Cone(5) = {0, 0, 0, -0.029, -0.004, -0.034, 0.015, 0.003, 2*Pi};
Cone(6) = {0, 0, 0, -0.025, -0.022, 0.03, 0.015, 0.003, 2*Pi};
Cone(7) = {0, 0, 0, -0.02, 0.039, -0.008, 0.015, 0.003, 2*Pi};
Cone(8) = {0, 0, 0, -0.016, -0.036, -0.022, 0.015, 0.003, 2*Pi};
Cone(9) = {0, 0, 0, -0.011, 0.012, 0.042, 0.015, 0.003, 2*Pi};
Cone(10) = {0, 0, 0, -0.007, 0.02, -0.04, 0.015, 0.003, 2*Pi};
Cone(11) = {0, 0, 0, -0.002, -0.042, 0.016, 0.015, 0.003, 2*Pi};
Cone(12) = {0, 0, 0, 0.002, 0.042, 0.016, 0.015, 0.003, 2*Pi};
Cone(13) = {0, 0, 0, 0.007, -0.02, -0.04, 0.015, 0.003, 2*Pi};
Cone(14) = {0, 0, 0, 0.011, -0.012, 0.042, 0.015, 0.003, 2*Pi};
Cone(15) = {0, 0, 0, 0.016, 0.036, -0.022, 0.015, 0.003, 2*Pi};
Cone(16) = {0, 0, 0, 0.02, -0.039, -0.008, 0.015, 0.003, 2*Pi};
Cone(17) = {0, 0, 0, 0.025, 0.022, 0.03, 0.015, 0.003, 2*Pi};
Cone(18) = {0, 0, 0, 0.029, 0.004, -0.034, 0.015, 0.003, 2*Pi};
Cone(19) = {0, 0, 0, 0.034, -0.022, 0.02, 0.015, 0.003, 2*Pi};
Cone(20) = {0, 0, 0, 0.038, 0.024, 0, 0.015, 0.003, 2*Pi};
Cone(21) = {0, 0, 0, 0.043, -0.01, -0.01, 0.015, 0.003, 2*Pi};
BooleanUnion(22) = {Volume{1}; Delete; }{ Volume{2}; Delete; };
BooleanUnion(23) = {Volume{3}; Delete; }{ Volume{22}; Delete; };
BooleanUnion(24) = {Volume{4}; Delete; }{ Volume{23}; Delete; };
BooleanUnion(25) = {Volume{5}; Delete; }{ Volume{24}; Delete; };
BooleanUnion(26) = {Volume{6}; Delete; }{ Volume{25}; Delete; };
BooleanUnion(27) = {Volume{7}; Delete; }{ Volume{26}; Delete; };
BooleanUnion(28) = {Volume{8}; Delete; }{ Volume{27}; Delete; };
BooleanUnion(29) = {Volume{9}; Delete; }{ Volume{28}; Delete; };
BooleanUnion(30) = {Volume{10}; Delete; }{ Volume{29}; Delete; };
BooleanUnion(31) = {Volume{11}; Delete; }{ Volume{30}; Delete; };
BooleanUnion(32) = {Volume{12}; Delete; }{ Volume{31}; Delete; };
BooleanUnion(33) = {Volume{13}; Delete; }{ Volume{32}; Delete; };
BooleanUnion(34) = {Volume{14}; Delete; }{ Volume{33}; Delete; };
BooleanUnion(35) = {Volume{15}; Delete; }{ Volume{34}; Delete; };
BooleanUnion(36) = {Volume{16}; Delete; }{ Volume{35}; Delete; };
BooleanUnion(37) = {Volume{17}; Delete; }{ Volume{36}; Delete; };
BooleanUnion(38) = {Volume{18}; Delete; }{ Volume{37}; Delete; };
BooleanUnion(39) = {Volume{19}; Delete; }{ Volume{38}; Delete; };
BooleanUnion(40) = {Volume{20}; Delete; }{ Volume{39}; Delete; };
BooleanUnion(41) = {Volume{21}; Delete; }{ Volume{40}; Delete; };
f() = Abs(Boundary{ Volume{41}; });
e() = Unique(Abs(Boundary{ Surface{f()}; }));
Fillet{41}{e()}{0.003}
<starn.png><fullstar20.geo><Screen Shot 2020-04-20 at 8.14.36 PM.png>_______________________________________________
gmsh mailing list
<a class="moz-txt-link-abbreviated" href="mailto:gmsh@onelab.info">gmsh@onelab.info</a>
<a class="moz-txt-link-freetext" href="http://onelab.info/mailman/listinfo/gmsh">http://onelab.info/mailman/listinfo/gmsh</a>
</pre>
</blockquote>
<pre class="moz-quote-pre" wrap="">
—
Prof. Christophe Geuzaine
University of Liege, Electrical Engineering and Computer Science
<a class="moz-txt-link-freetext" href="http://www.montefiore.ulg.ac.be/~geuzaine">http://www.montefiore.ulg.ac.be/~geuzaine</a>
</pre>
</blockquote>
</body>
</html>