[Gmsh] Retrieving point IDs from extrude

Ruth V. Sabariego r.sabariego at ulg.ac.be
Fri Apr 8 11:23:17 CEST 2011


Hi Andreas,
You can use the internal function Boundary for finding the boundary 
lines of the surface and then the points.

Try the following example:

====================================
R = 1 ;
lc =  R/2 ;

Point(1) = {0,0,0,lc};

Point(2) = {R,0,0,lc};
Point(3) = {0,R,0,lc};
Point(4) = {-R,0,0,lc};
Point(5) = {0,-R,0,lc};

Circle(1) = {2,1,3};
Circle(2) = {3,1,4};
Circle(3) = {4,1,5};
Circle(4) = {5,1,2};

Line Loop(5) = {1,2,3,4};
Plane Surface(6) = {5};

list[] = Extrude {0,0,4*R} {
     Surface{6};
} ;
cylinder_volume = list[1];
cylinder_surface_top   = list[0];
cylinder_surfaces_side[]= list[{2:5}];

cylinder_lines_top[] = Boundary{Surface{cylinder_surface_top};};
cylinder_points_top[]= Boundary{Line{cylinder_lines_top[]};};
Characteristic Length {cylinder_points_top[]} = lc/10 ;

===================================
Regards,
Ruth


On 08/04/11 10:54, Andreas Puettmann wrote:
> Hi everyone,
>
> I want to mesh a cylinder (which I create by extrusion) with changing 
> size elements. At one end I want to have smaller elements than at the 
> other end. This is actually just the same problem as described here:
> http://www.geuz.org/pipermail/gmsh/2010/005752.html
>
> I know I can control the element size by adjusting the characteristic 
> length:
>
> Characteristic Length { expression-list } = expression;
>
> But the question is: How can I obtain the numbers of points which were 
> newly created by the extrude command? I.e. how should I specify 
> expression-list?
>
> As far as I understand, the extrude command only returns the IDs of 
> the generated volume and surfaces. But I need points to specify 
> characteristic lengths...
>
> Any help is greatly appreciated.
>
> Cheers
> Andreas
>
>

-- 
Dr. Ir. Ruth V. Sabariego
University of Liege, Dept. of Electrical Engineering&  Computer Science,
Applied&  Computational Electromagnetics (ACE),
phone: +32-4-3663737 - fax: +32-4-3662910 - http://ace.montefiore.ulg.ac.be/