-1
$\begingroup$

I am trying to get the structured mesh as shown in the figure.

I have used the transfinite surface and curve to achieve the same. Though I get the structured mesh but I do not know how to do for body-of-revolution elements.

May I ask, How to generate structured mesh for body-of-revolution elements using gmsh?

enter image description here

$\endgroup$
3
  • $\begingroup$ You have to partition the domain such that each partition is topologically equivalent to a hexahedron (6 faces, four vertices on each face). $\endgroup$ – Biswajit Banerjee Apr 4 at 20:02
  • $\begingroup$ I have no clue right now and would be nice to have a code snippet to start with. $\endgroup$ – jomegaA Apr 4 at 20:21
  • $\begingroup$ You could use an arc-length parameterization to create a spline that follows the parabola. Then mesh this and extrude the mesh rotationally. $\endgroup$ – nicoguaro Apr 5 at 1:15
0
$\begingroup$

Thanks. Managed to get the structured paraboloid using gmsh.

enter image description here

c                             = 299792458;
f                             = 3.0e9;
lambda                        = c/f;
D                             = 1.25*lambda;
f2d                           = 0.72;
focallength                   = D*f2d;
parabolLowerEdgeHeight        = -D/2;
parabolPoints                 = 11;
delta                         = D/(parabolPoints-1);
h                             = lambda/12;

For i In {0:parabolPoints-1}
    x                         = (i*delta)+parabolLowerEdgeHeight;
    z                         = (x*x)/(4.0*focallength);
    points1[i]                = newp;
    Point(points1[i])         = {x, 0, z, h};
EndFor

x                             = ((parabolPoints-1)*delta)+parabolLowerEdgeHeight;
z                             = (x*x)/(4.0*focallength);
Point(12)                     = {0, 0, z};
Spline(1)                     = points1[];
Split Line(1) {6};  

Rotate {{0, 0, 1}, {0, 0, 0}, Pi/2} { Duplicata { Line{2}; } }
Rotate {{0, 0, 1}, {0, 0, 0}, Pi/2} { Duplicata { Line{3}; } }

Circle(6)                     = {11, 12, 23};
Circle(7)                     = {23, 12, 1};
Circle(8)                     = {1, 12, 13};
Circle(9)                     = {13, 12, 11};

Line Loop(10)                 = {3, 6, -5};
Line Loop(12)                 = {5, 7, 2};
Line Loop(14)                 = {2, -4, -8};
Line Loop(16)                 = {4, 3, -9};

Surface(11)                   = { -10};
Surface(13)                   = { -12};
Surface(15)                   = { 14};
Surface(17)                   = { 16};

Physical Surface("reflector")         = {15, 17, 11, 13};

//+
Transfinite Surface {11};
//+
Transfinite Surface {13};
//+
Transfinite Surface {17} Right;
//+
Transfinite Surface {15} Right;
//+
Recombine Surface {13, 11, 17, 15};
$\endgroup$
2
  • $\begingroup$ Could you describe the approach used so it would be of use for other people? $\endgroup$ – nicoguaro Apr 11 at 17:27
  • $\begingroup$ You may need to define the transfinite surface and recombine them. Updated my answer with code. $\endgroup$ – jomegaA Apr 15 at 10:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.