[Gmsh] pointsources and Nodes and Elements lists

Francisco Gilabert Villegas francisco.gilabert at itc.uji.es
Wed Oct 13 12:55:04 CEST 2010


Hi Jordi,

 

In Options -> Geometry -> General, please see if 

 

"Remove duplicate entities in GEO models" 

 

is checked. If not, check it.

 

It should work

 

Regards

 

Francisco

 

 

 

________________________________

De: jordi poblet [mailto:jordi.poblet at gmail.com] 
Enviado el: miércoles, 13 de octubre de 2010 10:31
Para: Francisco Gilabert Villegas
CC: gmsh at geuz.org
Asunto: Re: [Gmsh] pointsources and Nodes and Elements lists

 

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/1fc538af/attachment.html>