|
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
