[Gmsh] pointsources and Nodes and Elements lists

jordi poblet jordi.poblet at gmail.com
Wed Oct 13 10:30:53 CEST 2010


Hello Francisco,

Thanks for the proposal! This definitively seems a better option.
However, I have problems when running the example: " Error: something wrong
in edge loop  (gmsh version 2.4.2)". Is it correct?

Best regards,

JORDI

On Wed, Oct 13, 2010 at 9:28 AM, Francisco Gilabert Villegas <
francisco.gilabert at itc.uji.es> wrote:

>  Hello,
>
>
>
> You can insert points or lines in any surface. Please see the example
> below.
>
> I hope this help you.
>
>
>
> Regards,
>
>
>
> Francisco
>
>
>
>
>
> //****************************************************************
>
>
>
> len=0.1;
>
>
>
> Point(1) = {0, 0, 0, len};
>
>
>
> ext1[]=Extrude {1, 0, 0} {
>
>   Point{1};
>
> };
>
>
>
> ext2[]=Extrude {0, 1, 0} {
>
>   Line{ext1[1]};
>
> };
>
>
>
> my_point = newp;
>
>
>
> Point(my_point) = {0.34, 0.45, 0, len};
>
>
>
> // Inserting a point in a surface:
>
>
>
> Point{my_point} In Surface{ext2[1]};
>
>
>
> my_p1=newp; Point(my_p1) = {0.2, 0.78, 0, len};
>
> my_p2=newp; Point(my_p2) = {0.6, 0.67, 0, len};
>
>
>
> my_line=newl;
>
>
>
> Line(my_line)={my_p1,my_p2};
>
>
>
> // Inserting a line in surface
>
>
>
> Line{my_line} In Surface{ext2[1]};
>
>
>
> //****************************************************************
>
>
>
>
>
>
>
>
>
>
>  ------------------------------
>
> *De:* gmsh-bounces at ace20.montefiore.ulg.ac.be [mailto:
> gmsh-bounces at ace20.montefiore.ulg.ac.be] *En nombre de *jordi poblet
> *Enviado el:* lunes, 11 de octubre de 2010 14:10
> *Para:* Bart Vandewoestyne
> *CC:* gmsh at geuz.org
> *Asunto:* Re: [Gmsh] pointsources and Nodes and Elements lists
>
>
>
> Hello Bart,
>
> 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).
> 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.
>
> Best regards,
>
> JORDI
>
>
> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>
> lc = 0.13 ;
>
> //Coords
> x0 = 0.0 ;
> y0 = 0.0 ;
> xs = 0.49 ; //X Point source
> ys = 0.48 ;  //Y Point source
> x1 = 2.0 ;
> y1 = 3.0 ;
>
> //Points:
> Point(1) = {x0, y0, 0, lc};
> Point(2) = {xs, y0, 0, lc} ;
> Point(3) = {x1, y0, 0, lc} ;
> Point(4) = {x0, ys, 0, lc} ;
> Point(5) = {xs, ys, 0, lc};
> Point(6) = {x1, ys, 0, lc} ;
> Point(7) = {x0, y1, 0, lc} ;
> Point(8) = {xs, y1, 0, lc} ;
> Point(9) = {x1, y1, 0, lc};
>
> //Lines:
> Line(1) = {1,2} ;
> Line(2) = {2,3} ;
>
> Line(3) = {4,5} ;
> Line(4) = {5,6} ;
>
> Line(5) = {7,8} ;
> Line(6) = {8,9} ;
>
> Line(7) = {1,4} ;
> Line(8) = {4,7} ;
>
> Line(9) = {2,5} ;
> Line(10) = {5,8} ;
>
> Line(11) = {3,6} ;
> Line(12) = {6,9} ;
>
> //Loops:
> Line Loop(10) = {1,9,-3,-7} ;
> Line Loop(11) = {2,11,-4,-9} ;
> Line Loop(12) = {3,10,-5,-8} ;
> Line Loop(13) = {4,12,-6,-10} ;
>
> // Surfaces
> Plane Surface(10) = {10} ;
> Plane Surface(11) = {11} ;
> Plane Surface(12) = {12} ;
> Plane Surface(13) = {13} ;
>
> //Physical properties (final physical surface):
>     Physical Surface(100) = {10,11,12,13} ;
>
>
> //-------------------------------------------------------------------------------------------------------------------------------------
>
>
> On Mon, Oct 11, 2010 at 10:40 AM, Bart Vandewoestyne <
> Bart.Vandewoestyne at telenet.be> wrote:
>
> Hello list,
>
> For an application I'm working on, we use gmsh as our mesher, we parse the
> .msh
> file and then run our solver in Matlab.  From the .msh file, we extract the
> X
> and Y coordinates of the nodes (from $Nodes) in the mesh.  We also have a
> matrix representing the triangular elements in the mesh (extracted from
> $Elements).
>
> We would like our users to be able to specify pointsources in our
> computational
> domain.  The location of the pointsource is an arbitrary point that a user
> specifies and has nothing to do with the mesh.  In gmsh, we currently
> specify
> it as follows:
>
>
> ----------------------- small example ------------------
> lc = 0.6;
>
> // Corner points.
> Point(1) = {0, 0, 0, lc};
> Point(2) = {0, 1, 0, lc};
> Point(3) = {1, 1, 0, lc};
> Point(4) = {1, 0, 0, lc};
>
> // Point sources.
> Point(5) = {0.6, 0.6, 0, lc};
> Point(6) = {0.7, 0.7, 0, lc};
>
> Line(1) = {1, 2};
> Line(2) = {2, 3};
> Line(3) = {3, 4};
> Line(4) = {4, 1};
>
> Line Loop(5) = {1, 2, 3, 4};
> Plane Surface(6) = {5};
>
> Physical Point("Pointsource") = {5, 6};
> Physical Surface("My Surface") = {6};
> ----------------------- end small example ------------------
>
>
> And now here is the problem: if I mesh this .geo file with
>
>  gmsh -2 pointsource_test.geo
>
> then this is the result:
>
>
> ------------------ small example mesh ---------------------
>
> $MeshFormat
> 2.1 0 8
> $EndMeshFormat
> $PhysicalNames
> 2
> 0 1 "Pointsource"
> 2 2 "My Surface"
> $EndPhysicalNames
> $Nodes
> 7
> 1 0 0 0
> 2 0 1 0
> 3 1 1 0
> 4 1 0 0
> 5 0.6 0.6 0
> 6 0.7 0.7 0
> 7 0.5 0.5 0
> $EndNodes
> $Elements
> 6
> 1 15 3 1 5 0 5
> 2 15 3 1 6 0 6
> 3 2 3 2 6 0 1 7 4
> 4 2 3 2 6 0 3 7 2
> 5 2 3 2 6 0 7 3 4
> 6 2 3 2 6 0 7 1 2
> $EndElements
>
> ----------------------- end small example mesh ---------
>
>
> The 'problem' is that the coordinates of the pointsource appear in the list
> of nodal coordinates.  This has two consequences:
>
> 1) Our solver cannot have the pointsource coordinates in its list of x and
> y
>   coordinates.  It should only have the x and y coordinates of the *real*
>   nodes in our mesh.
>
> 2) Using the tags in the $Elements section, i can of course detect which
>   nodes are pointsources, and remove them from the $Nodes section in my
>   Matlab parser, but removing nodes from the $Nodes section also means that
>   a lot of indices in the $Elements section need to change!  For example,
>   if I remove nodes 5 and 6, then every 7 in the $Elements section has to
> be
>   replaced by a 5 (because node 5 and 6 were removed, and node 7 has become
>   node 5).
>
>
> Is there a way to circumvent this troublesome bookkeeping?  Maybe somehow
> prevent gmsh from putting our pointsources in the list of nodes, and
> returning
> the coordinates of our pointsources in another section somehow? (I'm just
> guessing here...)
>
> Kind regards,
> Bart
>
> --
>        "Share what you know.  Learn what you don't."
>
> _______________________________________________
> gmsh mailing list
> gmsh at geuz.org
> http://www.geuz.org/mailman/listinfo/gmsh
>
>
>
> _______________________________________________
> gmsh mailing list
> gmsh at geuz.org
> http://www.geuz.org/mailman/listinfo/gmsh
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.geuz.org/pipermail/gmsh/attachments/20101013/9021a089/attachment.html>