
SetFactory("OpenCASCADE");
//+
Point(1) = {0, 0, 0, 1.0};
//+
Point(2) = {0, 1, 0, 1.0};
//+
Point(3) = {0.5, 1, 0, 1.0};
//+
Point(4) = {0.5, 0.5, 0, 1.0};
//+
Point(5) = {1, 0.5, 0, 1.0};
//+
Point(6) = {1, 0, 0, 1.0};
//+
Line(1) = {2, 3};
//+
Line(2) = {3, 4};
//+
Line(3) = {4, 5};
//+
Line(4) = {5, 6};
//+
Line(5) = {6, 1};
//+
Line(6) = {2, 1};
//+
Point(7) = {-0.4, 1, 0, 1.0};
//+
Point(8) = {-0.4, -0.4, 0, 1.0};
//+
Point(9) = {1, -0.4, 0, 1.0};
//+
Point(10) = {1, 1, 0, 1.0};
//+
Line(7) = {2, 7};
//+
Line(8) = {7, 8};
//+
Line(9) = {8, 9};
//+
Line(10) = {9, 6};
//+
Line(11) = {3, 10};
//+
Line(12) = {10, 5};
//+
Physical Curve(1) = {1};
//+
Physical Curve(2) = {4};
//+
Curve Loop(1) = {6, -5, -4, -3, -2, -1};
//+
Curve Loop(2) = {8, 9, 10, -4, -12, -11, -1, 7};
//+
//+
//+
Curve Loop(3) = {7, 8, 9, 10, 5, -6};
//+
Plane Surface(2) = {3};
//+
Curve Loop(4) = {2, 3, -12, -11};
//+
Plane Surface(3) = {4};
//+
Curve Loop(5) = {1, 2, 3, 4, 5, -6};
//+
Plane Surface(4) = {5};
//+
Physical Surface(3) = {2};
//+
Physical Surface(4) = {4};
//+
Physical Surface(5) = {3};

p() = PointsOf{ Surface{4}; };
Characteristic Length{p()} = 0.25/10;