[Gmsh] How to have structured mesh with holes on plane surface?

tadej -ivan Zecevic tady57 at gmail.com
Wed Mar 14 18:45:54 CET 2018


Hi,

I am trying to create structured quad mesh on the plane surface with 2
holes on it. I have tried a lot of things(transfinite surface, adding some
lines and points, changing size of elements...). Can anyone help me or give
some links?  This is my .geo file:

// Gmsh project created on Wed Mar 14 18:32:44 2018
SetFactory("OpenCASCADE");
cl__1 = 1e+22;
Point(17) = {0, 0, 0, cl__1};
Point(18) = {1200, 0, 0, cl__1};
Point(19) = {1200, 0, 200, cl__1};
Point(20) = {0, 0, 200, cl__1};
Point(21) = {250, 0, 140, cl__1};
Point(22) = {350, 0, 140, cl__1};
Point(23) = {350, 0, 60, cl__1};
Point(24) = {250, 0, 60, cl__1};
Point(25) = {800, 0, 70, cl__1};
Point(26) = {1000, 0, 70, cl__1};
Point(27) = {800, 0, 130, cl__1};
Point(28) = {1000, 0, 130, cl__1};
p17 = newp;
Point(p17 + 1) = {60.00000000000006, 0, 0};
Point(p17 + 2) = {120, 0, 0};
Point(p17 + 3) = {180, 0, 0};
Point(p17 + 4) = {239.9999999999999, 0, 0};
Point(p17 + 5) = {300, 0, 0};
Point(p17 + 6) = {360.0000000000001, 0, 0};
Point(p17 + 7) = {420, 0, 0};
Point(p17 + 8) = {480, 0, 0};
Point(p17 + 9) = {540, 0, 0};
Point(p17 + 10) = {600, 0, 0};
Point(p17 + 11) = {660, 0, 0};
Point(p17 + 12) = {720, 0, 0};
Point(p17 + 13) = {780, 0, 0};
Point(p17 + 14) = {840, 0, 0};
Point(p17 + 15) = {900, 0, 0};
Point(p17 + 16) = {960, 0, 0};
Point(p17 + 17) = {1020, 0, 0};
Point(p17 + 18) = {1080, 0, 0};
Point(p17 + 19) = {1140, 0, 0};
Spline(17) = {17, p17 + 1, p17 + 2, p17 + 3, p17 + 4, p17 + 5, p17 + 6, p17
+ 7, p17 + 8, p17 + 9, p17 + 10, p17 + 11, p17 + 12, p17 + 13, p17 + 14,
p17 + 15, p17 + 16, p17 + 17, p17 + 18, p17 + 19, 18};
p18 = newp;
Point(p18 + 1) = {1200, 0, 10.00000000000001};
Point(p18 + 2) = {1200, 0, 20};
Point(p18 + 3) = {1200, 0, 30};
Point(p18 + 4) = {1200, 0, 39.99999999999999};
Point(p18 + 5) = {1200, 0, 50};
Point(p18 + 6) = {1200, 0, 60.00000000000001};
Point(p18 + 7) = {1200, 0, 70};
Point(p18 + 8) = {1200, 0, 80};
Point(p18 + 9) = {1200, 0, 89.99999999999999};
Point(p18 + 10) = {1200, 0, 100};
Point(p18 + 11) = {1200, 0, 110};
Point(p18 + 12) = {1200, 0, 120};
Point(p18 + 13) = {1200, 0, 130};
Point(p18 + 14) = {1200, 0, 140};
Point(p18 + 15) = {1200, 0, 150};
Point(p18 + 16) = {1200, 0, 160};
Point(p18 + 17) = {1200, 0, 170};
Point(p18 + 18) = {1200, 0, 180};
Point(p18 + 19) = {1200, 0, 190};
Spline(18) = {18, p18 + 1, p18 + 2, p18 + 3, p18 + 4, p18 + 5, p18 + 6, p18
+ 7, p18 + 8, p18 + 9, p18 + 10, p18 + 11, p18 + 12, p18 + 13, p18 + 14,
p18 + 15, p18 + 16, p18 + 17, p18 + 18, p18 + 19, 19};
p19 = newp;
Point(p19 + 1) = {1140, 0, 200};
Point(p19 + 2) = {1080, 0, 200};
Point(p19 + 3) = {1020, 0, 200};
Point(p19 + 4) = {960, 0, 200};
Point(p19 + 5) = {900, 0, 200};
Point(p19 + 6) = {840, 0, 200};
Point(p19 + 7) = {780, 0, 200};
Point(p19 + 8) = {720, 0, 200};
Point(p19 + 9) = {660, 0, 200};
Point(p19 + 10) = {600, 0, 200};
Point(p19 + 11) = {540, 0, 200};
Point(p19 + 12) = {480, 0, 200};
Point(p19 + 13) = {420, 0, 200};
Point(p19 + 14) = {360, 0, 200};
Point(p19 + 15) = {300, 0, 200};
Point(p19 + 16) = {240, 0, 200};
Point(p19 + 17) = {180, 0, 200};
Point(p19 + 18) = {120, 0, 200};
Point(p19 + 19) = {60, 0, 200};
Spline(19) = {19, p19 + 1, p19 + 2, p19 + 3, p19 + 4, p19 + 5, p19 + 6, p19
+ 7, p19 + 8, p19 + 9, p19 + 10, p19 + 11, p19 + 12, p19 + 13, p19 + 14,
p19 + 15, p19 + 16, p19 + 17, p19 + 18, p19 + 19, 20};
p20 = newp;
Point(p20 + 1) = {0, 0, 190};
Point(p20 + 2) = {0, 0, 180};
Point(p20 + 3) = {0, 0, 170};
Point(p20 + 4) = {0, 0, 160};
Point(p20 + 5) = {0, 0, 150};
Point(p20 + 6) = {0, 0, 140};
Point(p20 + 7) = {0, 0, 130};
Point(p20 + 8) = {0, 0, 120};
Point(p20 + 9) = {0, 0, 110};
Point(p20 + 10) = {0, 0, 100};
Point(p20 + 11) = {0, 0, 89.99999999999999};
Point(p20 + 12) = {0, 0, 80};
Point(p20 + 13) = {0, 0, 70};
Point(p20 + 14) = {0, 0, 60};
Point(p20 + 15) = {0, 0, 50};
Point(p20 + 16) = {0, 0, 40};
Point(p20 + 17) = {0, 0, 30};
Point(p20 + 18) = {0, 0, 20};
Point(p20 + 19) = {0, 0, 10};
Spline(20) = {20, p20 + 1, p20 + 2, p20 + 3, p20 + 4, p20 + 5, p20 + 6, p20
+ 7, p20 + 8, p20 + 9, p20 + 10, p20 + 11, p20 + 12, p20 + 13, p20 + 14,
p20 + 15, p20 + 16, p20 + 17, p20 + 18, p20 + 19, 17};
p21 = newp;
Point(p21 + 1) = {255, 0, 140};
Point(p21 + 2) = {260, 0, 140};
Point(p21 + 3) = {265, 0, 140};
Point(p21 + 4) = {270, 0, 140};
Point(p21 + 5) = {275, 0, 140};
Point(p21 + 6) = {280, 0, 140};
Point(p21 + 7) = {285, 0, 140};
Point(p21 + 8) = {290, 0, 140};
Point(p21 + 9) = {295, 0, 140};
Point(p21 + 10) = {300, 0, 140};
Point(p21 + 11) = {305, 0, 140};
Point(p21 + 12) = {310, 0, 140};
Point(p21 + 13) = {315, 0, 140};
Point(p21 + 14) = {320, 0, 140};
Point(p21 + 15) = {325, 0, 140};
Point(p21 + 16) = {330, 0, 140};
Point(p21 + 17) = {335, 0, 140};
Point(p21 + 18) = {340, 0, 140};
Point(p21 + 19) = {345, 0, 140};
Spline(21) = {21, p21 + 1, p21 + 2, p21 + 3, p21 + 4, p21 + 5, p21 + 6, p21
+ 7, p21 + 8, p21 + 9, p21 + 10, p21 + 11, p21 + 12, p21 + 13, p21 + 14,
p21 + 15, p21 + 16, p21 + 17, p21 + 18, p21 + 19, 22};
p22 = newp;
Point(p22 + 1) = {355.7967803356943, 0, 60.42226378331617};
Point(p22 + 2) = {361.7524786974607, 0, 61.76547344877589};
Point(p22 + 3) = {367.6506983860463, 0, 64.10497833310458};
Point(p22 + 4) = {373.244344360205, 0, 67.44696338861091};
Point(p22 + 5) = {378.2842720655851, 0, 71.71573352090972};
Point(p22 + 6) = {382.5530419378688, 0, 76.75566096627479};
Point(p22 + 7) = {385.8950262341719, 0, 82.34930618123006};
Point(p22 + 8) = {388.2345299185913, 0, 88.2475246699065};
Point(p22 + 9) = {389.5777380288357, 0, 94.20322147645763};
Point(p22 + 10) = {390, 0, 100};
Point(p22 + 11) = {389.5777380288357, 0, 105.7967785235425};
Point(p22 + 12) = {388.2345299185914, 0, 111.7524753300936};
Point(p22 + 13) = {385.8950262341718, 0, 117.6506938187701};
Point(p22 + 14) = {382.5530419378689, 0, 123.2443390337252};
Point(p22 + 15) = {378.284272065585, 0, 128.2842664790903};
Point(p22 + 16) = {373.244344360205, 0, 132.5530366113891};
Point(p22 + 17) = {367.6506983860463, 0, 135.8950216668954};
Point(p22 + 18) = {361.7524786974607, 0, 138.2345265512241};
Point(p22 + 19) = {355.7967803356943, 0, 139.5777362166838};
Spline(22) = {23, p22 + 1, p22 + 2, p22 + 3, p22 + 4, p22 + 5, p22 + 6, p22
+ 7, p22 + 8, p22 + 9, p22 + 10, p22 + 11, p22 + 12, p22 + 13, p22 + 14,
p22 + 15, p22 + 16, p22 + 17, p22 + 18, p22 + 19, 22};
p23 = newp;
Point(p23 + 1) = {255, 0, 60};
Point(p23 + 2) = {260, 0, 60};
Point(p23 + 3) = {265, 0, 60};
Point(p23 + 4) = {270, 0, 60};
Point(p23 + 5) = {275, 0, 60};
Point(p23 + 6) = {280, 0, 60};
Point(p23 + 7) = {285, 0, 60};
Point(p23 + 8) = {290, 0, 60};
Point(p23 + 9) = {295, 0, 60};
Point(p23 + 10) = {300, 0, 60};
Point(p23 + 11) = {305, 0, 60};
Point(p23 + 12) = {310, 0, 60};
Point(p23 + 13) = {315, 0, 60};
Point(p23 + 14) = {320, 0, 60};
Point(p23 + 15) = {325, 0, 60};
Point(p23 + 16) = {330, 0, 60};
Point(p23 + 17) = {335, 0, 60};
Point(p23 + 18) = {340, 0, 60};
Point(p23 + 19) = {345, 0, 60};
Spline(23) = {24, p23 + 1, p23 + 2, p23 + 3, p23 + 4, p23 + 5, p23 + 6, p23
+ 7, p23 + 8, p23 + 9, p23 + 10, p23 + 11, p23 + 12, p23 + 13, p23 + 14,
p23 + 15, p23 + 16, p23 + 17, p23 + 18, p23 + 19, 23};
p24 = newp;
Point(p24 + 1) = {244.20321895994, 0, 139.5777361135183};
Point(p24 + 2) = {238.2475198800425, 0, 138.2345261139787};
Point(p24 + 3) = {232.3492995438666, 0, 135.8950206489691};
Point(p24 + 4) = {226.7556530854728, 0, 132.5530347874873};
Point(p24 + 5) = {221.7157251411674, 0, 128.2842636858425};
Point(p24 + 6) = {217.4469553262792, 0, 123.2443352022421};
Point(p24 + 7) = {214.1049713906681, 0, 117.6506889885676};
Point(p24 + 8) = {211.7654683324287, 0, 111.7524696401071};
Point(p24 + 9) = {210.4222610426765, 0, 105.7967721842533};
Point(p24 + 10) = {210.0000000000006, 0, 99.99999325650442};
Point(p24 + 11) = {210.422262909218, 0, 94.20321409978459};
Point(p24 + 12) = {211.7654719047016, 0, 88.24751680155035};
Point(p24 + 13) = {214.1049763753455, 0, 82.3492980596947};
Point(p24 + 14) = {217.446961293809, 0, 76.75565292392081};
Point(p24 + 15) = {221.7157315457855, 0, 71.71572595929101};
Point(p24 + 16) = {226.755659309725, 0, 67.4469567340559};
Point(p24 + 17) = {232.3493049599832, 0, 64.10497298225943};
Point(p24 + 18) = {238.247523914033, 0, 61.76546971847601};
Point(p24 + 19) = {244.203221143439, 0, 60.42226187756398};
Spline(24) = {21, p24 + 1, p24 + 2, p24 + 3, p24 + 4, p24 + 5, p24 + 6, p24
+ 7, p24 + 8, p24 + 9, p24 + 10, p24 + 11, p24 + 12, p24 + 13, p24 + 14,
p24 + 15, p24 + 16, p24 + 17, p24 + 18, p24 + 19, 24};
p25 = newp;
Point(p25 + 1) = {810, 0, 70};
Point(p25 + 2) = {820, 0, 70};
Point(p25 + 3) = {830, 0, 70};
Point(p25 + 4) = {840, 0, 70};
Point(p25 + 5) = {850, 0, 70};
Point(p25 + 6) = {860, 0, 70};
Point(p25 + 7) = {870, 0, 70};
Point(p25 + 8) = {880, 0, 70};
Point(p25 + 9) = {890, 0, 70};
Point(p25 + 10) = {900, 0, 70};
Point(p25 + 11) = {910, 0, 70};
Point(p25 + 12) = {920, 0, 70};
Point(p25 + 13) = {930, 0, 70};
Point(p25 + 14) = {940, 0, 70};
Point(p25 + 15) = {950, 0, 70};
Point(p25 + 16) = {960, 0, 70};
Point(p25 + 17) = {970, 0, 70};
Point(p25 + 18) = {980, 0, 70};
Point(p25 + 19) = {990, 0, 70};
Spline(25) = {25, p25 + 1, p25 + 2, p25 + 3, p25 + 4, p25 + 5, p25 + 6, p25
+ 7, p25 + 8, p25 + 9, p25 + 10, p25 + 11, p25 + 12, p25 + 13, p25 + 14,
p25 + 15, p25 + 16, p25 + 17, p25 + 18, p25 + 19, 26};
p26 = newp;
Point(p26 + 1) = {795.6524153293051, 0, 129.683303514453};
Point(p26 + 2) = {791.1856418686525, 0, 128.6758973832092};
Point(p26 + 3) = {786.7619771674225, 0, 126.9212694998612};
Point(p26 + 4) = {782.5667425665528, 0, 124.4147810815324};
Point(p26 + 5) = {778.7867965644039, 0, 121.2132034355966};
Point(p26 + 6) = {775.5852189184677, 0, 117.4332574334478};
Point(p26 + 7) = {773.0787305001388, 0, 113.2380228325778};
Point(p26 + 8) = {771.324102616791, 0, 108.814358131348};
Point(p26 + 9) = {770.3166964855469, 0, 104.3475846706953};
Point(p26 + 10) = {770.0000000000001, 0, 100.0000000000004};
Point(p26 + 11) = {770.316696485547, 0, 95.65241532930558};
Point(p26 + 12) = {771.3241026167907, 0, 91.18564186865277};
Point(p26 + 13) = {773.0787305001385, 0, 86.76197716742278};
Point(p26 + 14) = {775.5852189184675, 0, 82.56674256655269};
Point(p26 + 15) = {778.7867965644034, 0, 78.78679656440376};
Point(p26 + 16) = {782.5667425665522, 0, 75.58521891846787};
Point(p26 + 17) = {786.7619771674224, 0, 73.07873050013889};
Point(p26 + 18) = {791.1856418686523, 0, 71.3241026167908};
Point(p26 + 19) = {795.652415329305, 0, 70.31669648554697};
Spline(26) = {27, p26 + 1, p26 + 2, p26 + 3, p26 + 4, p26 + 5, p26 + 6, p26
+ 7, p26 + 8, p26 + 9, p26 + 10, p26 + 11, p26 + 12, p26 + 13, p26 + 14,
p26 + 15, p26 + 16, p26 + 17, p26 + 18, p26 + 19, 25};
p27 = newp;
Point(p27 + 1) = {810, 0, 130};
Point(p27 + 2) = {820, 0, 130};
Point(p27 + 3) = {830, 0, 130};
Point(p27 + 4) = {840, 0, 130};
Point(p27 + 5) = {850, 0, 130};
Point(p27 + 6) = {860, 0, 130};
Point(p27 + 7) = {870, 0, 130};
Point(p27 + 8) = {880, 0, 130};
Point(p27 + 9) = {890, 0, 130};
Point(p27 + 10) = {900, 0, 130};
Point(p27 + 11) = {910, 0, 130};
Point(p27 + 12) = {920, 0, 130};
Point(p27 + 13) = {930, 0, 130};
Point(p27 + 14) = {940, 0, 130};
Point(p27 + 15) = {950, 0, 130};
Point(p27 + 16) = {960, 0, 130};
Point(p27 + 17) = {970, 0, 130};
Point(p27 + 18) = {980, 0, 130};
Point(p27 + 19) = {990, 0, 130};
Spline(27) = {27, p27 + 1, p27 + 2, p27 + 3, p27 + 4, p27 + 5, p27 + 6, p27
+ 7, p27 + 8, p27 + 9, p27 + 10, p27 + 11, p27 + 12, p27 + 13, p27 + 14,
p27 + 15, p27 + 16, p27 + 17, p27 + 18, p27 + 19, 28};
p28 = newp;
Point(p28 + 1) = {1004.347585780045, 0, 70.31669791486128};
Point(p28 + 2) = {1008.814360089968, 0, 71.32410541451598};
Point(p28 + 3) = {1013.2380253421, 0, 73.07873451327315};
Point(p28 + 4) = {1017.433260185896, 0, 75.58522390938454};
Point(p28 + 5) = {1021.213206144124, 0, 78.78680223561817};
Point(p28 + 6) = {1024.414783505291, 0, 82.56674859831843};
Point(p28 + 7) = {1026.921271456999, 0, 86.76198325857436};
Point(p28 + 8) = {1028.675898750678, 0, 91.18564776991978};
Point(p28 + 9) = {1029.683304217993, 0, 95.6524208618101};
Point(p28 + 10) = {1030, 0, 100.0000050576218};
Point(p28 + 11) = {1029.683302818087, 0, 104.3475894251616};
Point(p28 + 12) = {1028.675896071474, 0, 108.8143623988373};
Point(p28 + 13) = {1026.921267718491, 0, 113.2380264552291};
Point(p28 + 14) = {1024.414779029643, 0, 117.4332603070595};
Point(p28 + 15) = {1021.213201340661, 0, 121.2132055305318};
Point(p28 + 16) = {1017.433255517706, 0, 124.4147824494581};
Point(p28 + 17) = {1013.238021280012, 0, 126.9212702633054};
Point(p28 + 18) = {1008.814357064475, 0, 128.675897711143};
Point(p28 + 19) = {1004.347584142421, 0, 129.683303591827};
Spline(28) = {26, p28 + 1, p28 + 2, p28 + 3, p28 + 4, p28 + 5, p28 + 6, p28
+ 7, p28 + 8, p28 + 9, p28 + 10, p28 + 11, p28 + 12, p28 + 13, p28 + 14,
p28 + 15, p28 + 16, p28 + 17, p28 + 18, p28 + 19, 28};

Line Loop(5) = {17, 18, 19, 20};
Line Loop(19) ={25,28,-27,26};
Line Loop(20)={21,-22,-23,-24};
Plane Surface(5) = {5,19,20};


Thank you,
Tadej
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://onelab.info/pipermail/gmsh/attachments/20180314/f9bc7bbf/attachment-0001.html>


More information about the gmsh mailing list