Hi Alessandro,

I don't think there is a way to get a symmetric superficial mesh with the default algorithm.
You could try to force symmetry using:
Transfinite Line + Transfinite Surface
That can be a bit tricky for getting a nice mesh of a circle.
Have a look at the attached file...

Ruth

On 13/05/11 08:26, Alessandro Vicini wrote:

Dear all,

the attached picture shows a detail of the boundary of a 3D geometry. The
green circle is split into two surfaces along a diameter. Is there some way
to force the superficial mesh on the two half-circles to be symmetric?
Thank you for your help.

Regards,

Alessandro

p.s. - can somebody just tell me if this mail is received by the mailing
list?
_______________________________________________ gmsh mailing list [email protected] http://www.geuz.org/mailman/listinfo/gmsh

-- 
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/
R = 1 ;
Ri = R*3/4;
//
lcyl = R/10 ;

ndelta = 10 ;
nangle = 10 ;
val_prog = 0.9 ;

//-----------------------------------------------------------
//-----------------------------------------------------------
cen = newp ;
Point(cen)  = {0, 0, 0, lcyl};

Point(newp) = {R, 0, 0, lcyl};
Point(newp) = {0, R, 0, lcyl};
Point(newp) = {-R, 0, 0, lcyl};
Point(newp) = {0, -R, 0, lcyl};
pntcout[] = {newp-4:newp-1};

Ri = .6*R ;
Point(newp) = {Ri, 0, 0, lcyl};
Point(newp) = {0, Ri, 0, lcyl};
Point(newp) = {-Ri, 0, 0, lcyl};
Point(newp) = {0, -Ri, 0, lcyl};
pntcin[] = {newp-4:newp-1};

loopCylOut[] = {};
loopCylIn[] = {};
lCyl[] = {};

For i In {0:#pntcout[]-1}
  j = (i == #pntcout[]-1) ? 0 : i+1 ;
  Circle(newl) = {pntcout[i], cen, pntcout[j]};
  loopCylOut[] += {newl-1};
  Circle(newl) = {pntcin[i], cen, pntcin[j]};
  loopCylIn[] += {newl-1};
  Line(newl) = {pntcin[i], pntcout[i]};
  lCyl[] += {newl-1};
EndFor


llcylout = newll;
Line Loop(llcylout) = {loopCylOut[]} ;
llcylin = newll;
Line Loop(llcylin) = {loopCylIn[]} ;
surfCylIn = news ;
Plane Surface(surfCylIn) = {newll-1};

Transfinite Line{lCyl[]} = ndelta Using Progression val_prog;
Transfinite Line{loopCylIn[], loopCylOut[] } = nangle ;
Transfinite Surface{surfCylIn};

For i In {0:#lCyl[]-1}
 j = (i == #lCyl[]-1) ? 0 : i+1 ;
 Line Loop(newll) = {lCyl[i],loopCylOut[i],-lCyl[j],-loopCylIn[i]} ;
 surfCylOut[i] = news ;
 Plane Surface(surfCylOut[i]) = {newll-1};
 Transfinite Surface{surfCylOut[i]};
EndFor




_______________________________________________
gmsh mailing list
[email protected]
http://www.geuz.org/mailman/listinfo/gmsh

Reply via email to