Second-order flat quadrangle elements for curved surfaces
To obtain a second-order flat quadrangle mesh of a curved surface, I generate a first-order mesh and then convert it into a second-order one. If a try to generate directly a second-order mesh, I obtain curved elements. Follows an example:
// mesh.geo
// generate first-order mesh
Point(1) = {0, 0, 0, 100};
Point(2) = {0.5, 0, 0, 100};
Point(3) = {1, 0, 0, 100};
Circle(1) = {3, 2, 1};
Extrude {0, 0, 1} {
Curve{1}; Layers {1}; Recombine;
}
Curve Loop(1) = {1, 4, -2, -3};
Transfinite Curve {1} = 3 Using Progression 1;
Transfinite Curve {2} = 3 Using Progression 1;
Transfinite Curve {4} = 3 Using Progression 1;
Transfinite Curve {3} = 3 Using Progression 1;
Mesh.ElementOrder = 1;
Mesh 2;
Save "mesh.msh";
// converter.geo
// open and convert first-order mesh to second-order
Merge "mesh.msh";
SetOrder 2;
Save "output.msh";
Is there any "elegant" solution to this?