-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$ Apr 4, 2021 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, 2021 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, 2021 at 1:15

1 Answer 1

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, 2021 at 17:27
  • $\begingroup$ You may need to define the transfinite surface and recombine them. Updated my answer with code. $\endgroup$
    – jomegaA
    Apr 15, 2021 at 10:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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