Hello Bart,<br><br>I also need so often points in an specific position of the mesh. What I so is to construct the mesh by parts in order to be sure that there will be a node in the desired position (I copy an example for a single rectangle with a node in X=0.49; Y = 0.48).<br>
I suppose that this is not the answer that you were expecting... sometimes it is hard to build the meshes. In any case, I would also be interested in a better procedure to specify a priori the positions of some nodes of the mesh. But I guess that this is not natural for most of the meshing algorithms.<br>
<br>Best regards,<br><br>JORDI<br><br>------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------<br>
<br><br>lc = 0.13 ;
<br> <br>//Coords
<br>x0 = 0.0 ;
<br>y0 = 0.0 ;
<br>xs = 0.49 ; //X Point source
<br>ys = 0.48 ;  //Y Point source

<br>x1 = 2.0 ;
<br>y1 = 3.0 ;
<br> <br>//Points:
<br>Point(1) = {x0, y0, 0, lc};
<br>Point(2) = {xs, y0, 0, lc} ;
<br>Point(3) = {x1, y0, 0, lc} ;
<br>Point(4) = {x0, ys, 0, lc} ;
<br>Point(5) = {xs, ys, 0, lc};
<br>Point(6) = {x1, ys, 0, lc} ;
<br>Point(7) = {x0, y1, 0, lc} ;
<br>Point(8) = {xs, y1, 0, lc} ;
<br>Point(9) = {x1, y1, 0, lc};
<br> <br>//Lines:
<br>Line(1) = {1,2} ;
<br>Line(2) = {2,3} ;
<br> <br>Line(3) = {4,5} ;
<br>Line(4) = {5,6} ;
<br> <br>Line(5) = {7,8} ;
<br>Line(6) = {8,9} ;
<br> <br>Line(7) = {1,4} ;
<br>Line(8) = {4,7} ;
<br> <br>Line(9) = {2,5} ;
<br>Line(10) = {5,8} ;
<br> <br>Line(11) = {3,6} ;
<br>Line(12) = {6,9} ;
<br> <br>//Loops:
<br>Line Loop(10) = {1,9,-3,-7} ;
<br>Line Loop(11) = {2,11,-4,-9} ;
<br>Line Loop(12) = {3,10,-5,-8} ;
<br>Line Loop(13) = {4,12,-6,-10} ;
<br> <br>// Surfaces 
<br>Plane Surface(10) = {10} ;
<br>Plane Surface(11) = {11} ;
<br>Plane Surface(12) = {12} ;
<br>Plane Surface(13) = {13} ;
<br> <br>//Physical properties (final physical surface):
<br>    Physical Surface(100) = {10,11,12,13} ; <br><br><br>//------------------------------------------------------------------------------------------------------------------------------------- <br><br><br><div class="gmail_quote">
On Mon, Oct 11, 2010 at 10:40 AM, Bart Vandewoestyne <span dir="ltr"><<a href="mailto:Bart.Vandewoestyne@telenet.be">Bart.Vandewoestyne@telenet.be</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Hello list,<br>
<br>
For an application I'm working on, we use gmsh as our mesher, we parse the .msh<br>
file and then run our solver in Matlab.  From the .msh file, we extract the X<br>
and Y coordinates of the nodes (from $Nodes) in the mesh.  We also have a<br>
matrix representing the triangular elements in the mesh (extracted from<br>
$Elements).<br>
<br>
We would like our users to be able to specify pointsources in our computational<br>
domain.  The location of the pointsource is an arbitrary point that a user<br>
specifies and has nothing to do with the mesh.  In gmsh, we currently specify<br>
it as follows:<br>
<br>
<br>
----------------------- small example ------------------<br>
lc = 0.6;<br>
<br>
// Corner points.<br>
Point(1) = {0, 0, 0, lc};<br>
Point(2) = {0, 1, 0, lc};<br>
Point(3) = {1, 1, 0, lc};<br>
Point(4) = {1, 0, 0, lc};<br>
<br>
// Point sources.<br>
Point(5) = {0.6, 0.6, 0, lc};<br>
Point(6) = {0.7, 0.7, 0, lc};<br>
<br>
Line(1) = {1, 2};<br>
Line(2) = {2, 3};<br>
Line(3) = {3, 4};<br>
Line(4) = {4, 1};<br>
<br>
Line Loop(5) = {1, 2, 3, 4};<br>
Plane Surface(6) = {5};<br>
<br>
Physical Point("Pointsource") = {5, 6};<br>
Physical Surface("My Surface") = {6};<br>
----------------------- end small example ------------------<br>
<br>
<br>
And now here is the problem: if I mesh this .geo file with<br>
<br>
  gmsh -2 pointsource_test.geo<br>
<br>
then this is the result:<br>
<br>
<br>
------------------ small example mesh ---------------------<br>
<br>
$MeshFormat<br>
2.1 0 8<br>
$EndMeshFormat<br>
$PhysicalNames<br>
2<br>
0 1 "Pointsource"<br>
2 2 "My Surface"<br>
$EndPhysicalNames<br>
$Nodes<br>
7<br>
1 0 0 0<br>
2 0 1 0<br>
3 1 1 0<br>
4 1 0 0<br>
5 0.6 0.6 0<br>
6 0.7 0.7 0<br>
7 0.5 0.5 0<br>
$EndNodes<br>
$Elements<br>
6<br>
1 15 3 1 5 0 5<br>
2 15 3 1 6 0 6<br>
3 2 3 2 6 0 1 7 4<br>
4 2 3 2 6 0 3 7 2<br>
5 2 3 2 6 0 7 3 4<br>
6 2 3 2 6 0 7 1 2<br>
$EndElements<br>
<br>
----------------------- end small example mesh ---------<br>
<br>
<br>
The 'problem' is that the coordinates of the pointsource appear in the list<br>
of nodal coordinates.  This has two consequences:<br>
<br>
1) Our solver cannot have the pointsource coordinates in its list of x and y<br>
   coordinates.  It should only have the x and y coordinates of the *real*<br>
   nodes in our mesh.<br>
<br>
2) Using the tags in the $Elements section, i can of course detect which<br>
   nodes are pointsources, and remove them from the $Nodes section in my<br>
   Matlab parser, but removing nodes from the $Nodes section also means that<br>
   a lot of indices in the $Elements section need to change!  For example,<br>
   if I remove nodes 5 and 6, then every 7 in the $Elements section has to be<br>
   replaced by a 5 (because node 5 and 6 were removed, and node 7 has become<br>
   node 5).<br>
<br>
<br>
Is there a way to circumvent this troublesome bookkeeping?  Maybe somehow<br>
prevent gmsh from putting our pointsources in the list of nodes, and returning<br>
the coordinates of our pointsources in another section somehow? (I'm just<br>
guessing here...)<br>
<br>
Kind regards,<br>
Bart<br>
<font color="#888888"><br>
--<br>
        "Share what you know.  Learn what you don't."<br>
<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>
</font></blockquote></div><br>