// Circular cylinder in circular domain

InnerRadius = 0.25;
OuterRadius = 10.0;
NoRadialNodes = 20;
NoAngularNodes = 10;
RadialProgression = 1.25;
AngularProgression = 1.0;

//+
Point(1) = {0, 0, 0, 1};
//+
Point(2) = {0, InnerRadius, 0, 1};
//+
Point(3) = {-InnerRadius, 0, 0, 1};
//+
Point(4) = {0, -InnerRadius, 0, 1};
//+
Point(5) = {InnerRadius, 0, 0, 1};

//+
Circle(1) = {2, 1, 3};
//+
Circle(2) = {3, 1, 4};
//+
Circle(3) = {4, 1, 5};
//+
Circle(4) = {5, 1, 2};

//+
Point(6) = {0, OuterRadius, 0, 1};
//+
Point(7) = {-OuterRadius, 0, 0, 1};
//+
Point(8) = {0, -OuterRadius, 0, 1};
//+
Point(9) = {OuterRadius, 0, 0, 1};

//+
Circle(5) = {6, 1, 7};
//+
Circle(6) = {7, 1, 8};
//+
Circle(7) = {8, 1, 9};
//+
Circle(8) = {9, 1, 6};

//+
Line(9) = {2, 6};
//+
Line(10) = {3, 7};
//+
Line(11) = {4, 8};
//+
Line(12) = {5, 9};

//+
Transfinite Line {10} = NoRadialNodes Using Progression RadialProgression;
//+
Transfinite Line {11} = NoRadialNodes Using Progression RadialProgression;
//+
Transfinite Line {12} = NoRadialNodes Using Progression RadialProgression;
//+
Transfinite Line {9} = NoRadialNodes Using Progression RadialProgression;

//+
Transfinite Line {1} = NoAngularNodes Using Progression AngularProgression;
//+
Transfinite Line {2} = NoAngularNodes Using Progression AngularProgression;
//+
Transfinite Line {3} = NoAngularNodes Using Progression AngularProgression;
//+
Transfinite Line {4} = NoAngularNodes Using Progression AngularProgression;
//+
Transfinite Line {5} = NoAngularNodes Using Progression AngularProgression;
//+
Transfinite Line {6} = NoAngularNodes Using Progression AngularProgression;
//+
Transfinite Line {7} = NoAngularNodes Using Progression AngularProgression;
//+
Transfinite Line {8} = NoAngularNodes Using Progression AngularProgression;

//+
Line Loop(1) = {9, 5, -10, -1};
//+
Plane Surface(1) = {1};
//+
Line Loop(2) = {10, 6, -11, -2};
//+
Plane Surface(2) = {2};
//+
Line Loop(3) = {11, 7, -12, -3};
//+
Plane Surface(3) = {3};
//+
Line Loop(4) = {12, 8, -9, -4};
//+
Plane Surface(4) = {4};

//+
Transfinite Surface {1};
//+
Transfinite Surface {2};
//+
Transfinite Surface {3};
//+
Transfinite Surface {4};
//+
Recombine Surface {1};
//+
Recombine Surface {2};
//+
Recombine Surface {3};
//+
Recombine Surface {4};

//+
Physical Line("Wall") = {1, 2, 3, 4};
//+
Physical Line("inlet") = {5, 6};
//+
Physical Line("outlet") = {8, 7};
//+
Physical Surface("fluid") = {1, 2, 3, 4};
