= R"(
Function Cylinder3D
// base cirle
p0 = newp; Point(p0) = {0, 0, 0, meshSpecimen};
p1 = newp; Point(p1) = {0, radius, 0, meshSpecimen};
p2 = newp; Point(p2) = {0, -radius, 0, meshSpecimen};
c0 = newl; Circle(c0) = {p1, p0, p2};
c1 = newl; Circle(c1) = {p2, p0, p1};
baseLoop = newll; Line Loop(baseLoop) = {c0, c1};
baseSurface = news; Plane Surface(baseSurface) = {baseLoop};
// top cirle
p3 = newp; Point(p3) = {0, 0, height, meshSpecimen};
p4 = newp; Point(p4) = {0, radius, height, meshSpecimen};
p5 = newp; Point(p5) = {0, -radius, height, meshSpecimen};
c2 = newl; Circle(c2) = {p4, p3, p5};
c3 = newl; Circle(c3) = {p5, p3, p4};
topLoop = newll; Line Loop(topLoop) = {c2, c3};
topSurface = news; Plane Surface(topSurface) = {topLoop};
// barrell surfaces
verticalOne = newl; Line(verticalOne) = {p2, p5};
verticalTwo = newl; Line(verticalTwo) = {p1, p4};
barrelLoopOne = newll; Line Loop(barrelLoopOne) = {c0, verticalOne, -c2, -verticalTwo};
barrelLoopTwo = newll; Line Loop(barrelLoopTwo) = {c1, verticalTwo, -c3, -verticalOne};
barrelSurfaceOne = news; Ruled Surface(barrelSurfaceOne) = {barrelLoopOne};
barrelSurfaceTwo = news; Ruled Surface(barrelSurfaceTwo) = {barrelLoopTwo};
// surface loop
theBox = newreg;
Surface Loop(theBox) = {barrelSurfaceOne, barrelSurfaceTwo, baseSurface, topSurface};
Return
)"