Hi John,<br><br>Just out of curiosity:<br>Don't you need to "smooth" the elements close to the "snapped" boundary nodes?<br>If yes, doesn't it mean that you also need to reposition the nodes not only close to the interfaces, but also those which are in the geometry?<br>
Finally, isn't this algorithm like a morphing algorithm?<br><br>I actually sent a mail to the mailing list to know what are GMSH' capabilities regarding morphing, but there were not much answer. <br><br>Regarding this smoothing function, it would make use of the GMSH finite element solver part, and deal with the existing mesh, make it deformed linearly with a given E modulus to make it fit a new shape.<br>
You would then have all the nodes positioned accordingly their distance from the originally "snapped" nodes.<br><br>Regards,<br><br>Pierre<br><br><br><br><div class="gmail_quote">2009/7/29 John Blackburn <span dir="ltr"><<a href="mailto:John.Blackburn@npl.co.uk">John.Blackburn@npl.co.uk</a>></span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">



<div>
<div><font face="Arial" size="2"><span>Dear 
Sir,</span></font></div>
<div><font face="Arial" size="2"><span></span></font> </div>
<div><font face="Arial" size="2"><span>I have recently been 
trying out Gmsh and am most impressed with its capabilities. I am writing an FE 
code of my own which uses hexahedrons. I've noticed that, while Gmsh does 
generate hex's this is quite a painful process and involves splitting the 
geometry into many more parts than would be the case for tets. Hex meshes can 
only be generated for transfinite volumes or ones which can be made from 
extrusions. I would like to suggest another method to generate (structured) hex 
meshes which is to have a "logical mesh", which is just a cubic grid of nodes, 
and then "snap" the nodes onto nearby interface points. You then end up with a 
mesh with the same topology as the original but distored to fit the required 
shapes. </span></font></div>
<div><font face="Arial" size="2"><span></span></font> </div>
<div><font face="Arial" size="2"><span>I would like to add 
this functionality to Gmsh as I think it would greatly improve the program. 
However, I am mainly a Fortran programmer. I can code in C with some difficulty 
but full OO C++ is beyond me! I was wondering, if I send you a detailed write up 
of the algorithm I have in mind (with all the maths/geometry written out 
explicitly), could you code it in for me? I suspect this simple algorithm would 
be easy to implement given Gmsh's existing capablities. Basically two things are 
needed:</span></font></div>
<div><font face="Arial" size="2"><span></span></font> </div>
<div><font face="Arial" size="2"><span>* a function to 
decide whether an arbitrary point (x,y,z) is inside a given volume (defined, as 
usual by plane or ruled surfaces themselves defeined by curves: just the way 
Gmsh works now). I'm sure Gmsh already has a function like 
this?</span></font></div>
<div><font face="Arial" size="2"><span></span></font> </div>
<div><font face="Arial" size="2"><span>* a funciton to 
"snap" a point to the nearest point on the volume surface. Note that only points 
at the interface between two regions are candidates for 
snapping.</span></font></div>
<div><font face="Arial" size="2"><span></span></font> </div>
<div><font face="Arial" size="2"><span>I've written a 
little program to implement this algorithm as I see (in 2-D for the moment but 
3-D would not be much more difficult). The program outputs a .MSH file which 
I've plotted using Gmsh and attached. Notice how the algorithm involves 
INSERTING shapes into each other: the orange square was defined first, then the 
green circle, blue circle, and finally, yellow polygon. This is very different 
from Gmsh's current approach but its a very powerful 
technique.</span></font></div>
<div><font face="Arial" size="2"><span></span></font> </div>
<div><font face="Arial" size="2"><span>I also intend to 
write a final "relaxation" part to the meshing so the unecessarily distorted 
nodes in the blue circle would return to their original 
positions.</span></font></div>
<div><font face="Arial" size="2"><span></span></font> </div>
<div><font face="Arial" size="2"><span>What do you think 
about incorporating this functionality? Basically, the user would do everything 
he normally does to prepare the GEO file. Then there would be an extra button on 
the Mesh menu, "Grid" for example.</span></font></div>
<div><font face="Arial" size="2"><span></span></font> </div>
<div><font face="Arial" size="2"><span>Best 
Regards,</span></font></div>
<div><font face="Arial" size="2"><span></span></font> </div>
<div><font face="Arial" size="2"><span>John 
Blackburn</span></font></div>
<br><pre>-------------------------------------------------------------------
This e-mail and any attachments may contain confidential and/or
privileged material; it is for the intended addressee(s) only.
If you are not a named addressee, you must not use, retain or
disclose such information.

NPL Management Ltd cannot guarantee that the e-mail or any
attachments are free from viruses.

NPL Management Ltd. Registered in England and Wales. No: 2937881
Registered Office: Serco House, 16 Bartley Wood Business Park,
                   Hook, Hampshire, United Kingdom  RG27 9UY
-------------------------------------------------------------------
</pre>
<br></div>
<br>_______________________________________________<br>
gmsh mailing list<br>
<a href="mailto:gmsh@geuz.org">gmsh@geuz.org</a><br>
<a href="http://www.geuz.org/mailman/listinfo/gmsh" target="_blank">http://www.geuz.org/mailman/listinfo/gmsh</a><br>
<br></blockquote></div><br>