diff --git a/benchmarks/3d/hole.geo b/benchmarks/3d/hole.geo new file mode 100644 index 0000000000000000000000000000000000000000..c45163022fb1a555737cdb44141ffa568aa7b655 --- /dev/null +++ b/benchmarks/3d/hole.geo @@ -0,0 +1,590 @@ + +Mesh.CharacteristicLengthFactor = 0.7; // 32,000 tets +//Mesh.CharacteristicLengthFactor = 0.5; // 91,000 tets +//Mesh.CharacteristicLengthFactor = 0.4; // 163,000 tets +//Mesh.CharacteristicLengthFactor = 0.3; // 340,000 tets + +R1 = 1.e-3; +R2 = 1.5e-3; + +h1 = 0.7e-3; +h2 = 0.1e-3; +h3 = 1.e-3; +h4 = 2.01e-3; + +w1 = 1.1e-3; +w2 = 3.005e-3; + +hm = 5e-3; +Rm = 7e-3; + +w = 0.5e-3; + +p0 = 1.5e-3; // center coils +p3 = 3e-3; +p7 = 0.5e-3; // coils inside +p8 = 0.6e-3; // coils outside +p9 = 0.3e-3; + +Point(101) = {0,0,h1,p0}; +Point(102) = {+R1,0,h1,p7}; +Point(103) = {+R2,0,h1,p8}; +Point(104) = {-R1,0,h1,p7}; +Point(105) = {-R2,0,h1,p8}; +Point(106) = {0,R1,h1,p7}; +Point(107) = {0,-R1,h1,p7}; +Point(108) = {0,R2,h1,p8}; +Point(109) = {0,-R2,h1,p8}; + +Point(201) = {0,0,-h1,p0}; +Point(202) = {+R1,0,-h1,p7}; +Point(203) = {+R2,0,-h1,p8}; +Point(204) = {-R1,0,-h1,p7}; +Point(205) = {-R2,0,-h1,p8}; +Point(206) = {0,R1,-h1,p7}; +Point(207) = {0,-R1,-h1,p7}; +Point(208) = {0,R2,-h1,p8}; +Point(209) = {0,-R2,-h1,p8}; + +Point(1101) = {0,0,h2,p0}; +Point(1102) = {+R1,0,h2,p7}; +Point(1103) = {+R2,0,h2,p8}; +Point(1104) = {-R1,0,h2,p7}; +Point(1105) = {-R2,0,h2,p8}; +Point(1106) = {0,R1,h2,p7}; +Point(1107) = {0,-R1,h2,p7}; +Point(1108) = {0,R2,h2,p8}; +Point(1109) = {0,-R2,h2,p8}; + +Point(1201) = {0,0,-h2,p0}; +Point(1202) = {+R1,0,-h2,p7}; +Point(1203) = {+R2,0,-h2,p8}; +Point(1204) = {-R1,0,-h2,p7}; +Point(1205) = {-R2,0,-h2,p8}; +Point(1206) = {0,R1,-h2,p7}; +Point(1207) = {0,-R1,-h2,p7}; +Point(1208) = {0,R2,-h2,p8}; +Point(1209) = {0,-R2,-h2,p8}; + +Circle(1) = {102,101,106}; +Circle(2) = {106,101,104}; +Circle(3) = {104,101,107}; +Circle(4) = {107,101,102}; +Circle(5) = {103,101,108}; +Circle(6) = {108,101,105}; +Circle(7) = {105,101,109}; +Circle(8) = {109,101,103}; +Circle(9) = {202,201,206}; +Circle(10) = {206,201,204}; +Circle(11) = {204,201,207}; +Circle(12) = {207,201,202}; +Circle(13) = {203,201,208}; +Circle(14) = {208,201,205}; +Circle(15) = {205,201,209}; +Circle(16) = {209,201,203}; + +Circle(101) = {1102,1101,1106}; +Circle(102) = {1106,1101,1104}; +Circle(103) = {1104,1101,1107}; +Circle(104) = {1107,1101,1102}; +Circle(105) = {1103,1101,1108}; +Circle(106) = {1108,1101,1105}; +Circle(107) = {1105,1101,1109}; +Circle(108) = {1109,1101,1103}; +Circle(109) = {1202,1201,1206}; +Circle(1010) = {1206,1201,1204}; +Circle(1011) = {1204,1201,1207}; +Circle(1012) = {1207,1201,1202}; +Circle(1013) = {1203,1201,1208}; +Circle(1014) = {1208,1201,1205}; +Circle(1015) = {1205,1201,1209}; +Circle(1016) = {1209,1201,1203}; + +Point(2101) = {0,0,hm,p3}; +Point(2102) = {+Rm,0,hm,p3}; +Point(2104) = {-Rm,0,hm,p3}; +Point(2106) = {0,Rm,hm,p3}; +Point(2107) = {0,-Rm,hm,p3}; +Point(2201) = {0,0,-hm,p3}; +Point(2202) = {+Rm,0,-hm,p3}; +Point(2204) = {-Rm,0,-hm,p3}; +Point(2206) = {0,Rm,-hm,p3}; +Point(2207) = {0,-Rm,-hm,p3}; + +Point(3202) = {+Rm,0,h2,p3}; +Point(3204) = {-Rm,0,h2,p3}; +Point(3206) = {0,Rm,h2,p3}; +Point(3207) = {0,-Rm,h2,p3}; +Point(3302) = {+Rm,0,-h2,p3}; +Point(3304) = {-Rm,0,-h2,p3}; +Point(3306) = {0,Rm,-h2,p3}; +Point(3307) = {0,-Rm,-h2,p3}; + +Line(1017) = {203,1203}; +Line(1018) = {1203,1103}; +Line(1019) = {1103,103}; +Line(1020) = {208,1208}; +Line(1021) = {1208,1108}; +Line(1022) = {1108,108}; +Line(1023) = {209,1209}; +Line(1024) = {1209,1109}; +Line(1025) = {1109,109}; +Line(1026) = {205,1205}; +Line(1027) = {1205,1105}; +Line(1028) = {1105,105}; +Line(1029) = {207,1207}; +Line(1030) = {1207,1107}; +Line(1031) = {1107,107}; +Line(1032) = {202,1202}; +Line(1033) = {1202,1102}; +Line(1034) = {1102,102}; +Line(1035) = {206,1206}; +Line(1036) = {1206,1106}; +Line(1037) = {1106,106}; +Line(1038) = {204,1204}; +Line(1039) = {1204,1104}; +Line(1040) = {1104,104}; + +Circle(1041) = {2102,2101,2106}; +Circle(1042) = {2106,2101,2104}; +Circle(1043) = {2104,2101,2107}; +Circle(1044) = {2107,2101,2102}; + +Circle(1045) = {3206,1101,3204}; +Circle(1046) = {3204,1101,3207}; +Circle(1047) = {3207,1101,3202}; +Circle(1048) = {3202,1101,3206}; +Circle(1049) = {3306,1201,3302}; +Circle(1050) = {3302,1201,3307}; + +Circle(1051) = {3307,1201,3304}; +Circle(1052) = {3304,1201,3306}; +Circle(1053) = {2204,2201,2207}; +Circle(1054) = {2207,2201,2202}; +Circle(1055) = {2202,2201,2206}; +Circle(1056) = {2206,2201,2204}; + +Line(1057) = {2206,3306}; +Line(1058) = {3306,3206}; +Line(1059) = {3206,2106}; +Line(1060) = {2204,3304}; +Line(1061) = {3304,3204}; +Line(1062) = {3204,2104}; +Line(1063) = {2207,3307}; +Line(1064) = {3307,3207}; +Line(1065) = {3207,2107}; +Line(1066) = {2202,3302}; +Line(1067) = {3302,3202}; +Line(1068) = {3202,2102}; + +Line Loop(1069) = {1016,1013,1014,1015}; +Line Loop(1070) = {109,1010,1011,1012}; +Plane Surface(1071) = {1069,1070}; +Line Loop(1072) = {106,107,108,105}; +Line Loop(1073) = {103,104,101,102}; +Plane Surface(1074) = {1072,1073}; +Line Loop(1081) = {5,6,7,8}; +Line Loop(1082) = {3,4,1,2}; +Plane Surface(1083) = {1081,1082}; +Line Loop(1085) = {16,13,14,15}; +Line Loop(1086) = {9,10,11,12}; +Plane Surface(1087) = {1085,1086}; +Line Loop(1089) = {1041,1042,1043,1044}; +Plane Surface(1090) = {1089}; +Line Loop(1091) = {1055,1056,1053,1054}; +Plane Surface(1092) = {1091}; +Line Loop(1093) = {-1062,-1045,1059,1042}; +Ruled Surface(1094) = {1093}; +Line Loop(1095) = {-1057,1056,1060,1052}; +Ruled Surface(1096) = {1095}; +Line Loop(1097) = {-1045,-1058,-1052,1061}; +Ruled Surface(1098) = {1097}; +Line Loop(1099) = {1059,-1041,-1068,1048}; +Ruled Surface(1100) = {1099}; +Line Loop(1101) = {-1048,-1067,-1049,1058}; +Ruled Surface(1102) = {1101}; +Line Loop(1103) = {-1066,1055,1057,1049}; +Ruled Surface(1104) = {1103}; +Line Loop(1105) = {1068,-1044,-1065,1047}; +Ruled Surface(1106) = {1105}; +Line Loop(1107) = {-1047,-1064,-1050,1067}; +Ruled Surface(1108) = {1107}; +Line Loop(1109) = {1050,-1063,1054,1066}; +Ruled Surface(1110) = {1109}; +Line Loop(1111) = {-1043,-1062,1046,1065}; +Ruled Surface(1112) = {1111}; +Line Loop(1113) = {-1046,-1061,-1051,1064}; +Ruled Surface(1114) = {1113}; +Line Loop(1115) = {1063,1051,-1060,1053}; +Ruled Surface(1116) = {1115}; +Line Loop(1117) = {1022,-5,-1019,105}; +Ruled Surface(1118) = {1117}; +Line Loop(1119) = {8,-1019,-108,1025}; +Ruled Surface(1120) = {1119}; +Line Loop(1121) = {-7,-1028,107,1025}; +Ruled Surface(1122) = {1121}; +Line Loop(1123) = {-6,-1022,106,1028}; +Ruled Surface(1124) = {1123}; +Line Loop(1125) = {108,-1018,-1016,1024}; +Ruled Surface(1126) = {1125}; +Line Loop(1127) = {-107,-1027,1015,1024}; +Ruled Surface(1128) = {1127}; +Line Loop(1129) = {106,-1027,-1014,1021}; +Ruled Surface(1130) = {1129}; +Line Loop(1131) = {105,-1021,-1013,1018}; +Ruled Surface(1132) = {1131}; +Line Loop(1133) = {1017,-1016,-1023,16}; +Ruled Surface(1134) = {1133}; +Line Loop(1135) = {-1013,-1017,13,1020}; +Ruled Surface(1136) = {1135}; +Line Loop(1137) = {-1014,-1020,14,1026}; +Ruled Surface(1138) = {1137}; +Line Loop(1139) = {-1023,-15,1026,1015}; +Ruled Surface(1140) = {1139}; +Line Loop(1141) = {-1010,-1035,10,1038}; +Ruled Surface(1142) = {1141}; +Line Loop(1143) = {-109,-1032,9,1035}; +Ruled Surface(1144) = {1143}; +Line Loop(1145) = {-1012,-1029,12,1032}; +Ruled Surface(1146) = {1145}; +Line Loop(1147) = {1029,-1011,-1038,11}; +Ruled Surface(1148) = {1147}; +Line Loop(1149) = {-104,-1030,1012,1033}; +Ruled Surface(1150) = {1149}; +Line Loop(1151) = {-101,-1033,109,1036}; +Ruled Surface(1152) = {1151}; +Line Loop(1153) = {102,-1039,-1010,1036}; +Ruled Surface(1154) = {1153}; +Line Loop(1155) = {1030,-103,-1039,1011}; +Ruled Surface(1156) = {1155}; +Line Loop(1157) = {4,-1034,-104,1031}; +Ruled Surface(1158) = {1157}; +Line Loop(1159) = {3,-1031,-103,1040}; +Ruled Surface(1160) = {1159}; +Line Loop(1161) = {-2,-1037,102,1040}; +Ruled Surface(1162) = {1161}; +Line Loop(1163) = {-1,-1034,101,1037}; +Ruled Surface(1164) = {1163}; + +Point(10001) = {w,w,h1,p9}; +Point(10002) = {w,-w,h1,p9}; +Point(10003) = {-w,w,h1,p9}; +Point(10004) = {-w,-w,h1,p9}; + +Point(10011) = {w,w,h2,p9}; +Point(10012) = {w,-w,h2,p9}; +Point(10013) = {-w,w,h2,p9}; +Point(10014) = {-w,-w,h2,p9}; + +Point(20001) = {w,w,-h1,p9}; +Point(20002) = {w,-w,-h1,p9}; +Point(20003) = {-w,w,-h1,p9}; +Point(20004) = {-w,-w,-h1,p9}; + +Point(20011) = {w,w,-h2,p9}; +Point(20012) = {w,-w,-h2,p9}; +Point(20013) = {-w,w,-h2,p9}; +Point(20014) = {-w,-w,-h2,p9}; + +Line(1173) = {10004,10003}; +Line(1174) = {10003,10001}; +Line(1175) = {10001,10002}; +Line(1176) = {10002,10004}; +Line(1177) = {10014,10013}; +Line(1178) = {10013,10011}; +Line(1179) = {10011,10012}; +Line(1180) = {10012,10014}; +Line(1181) = {20014,20013}; +Line(1182) = {20013,20011}; +Line(1183) = {20011,20012}; +Line(1184) = {20012,20014}; +Line(1185) = {20004,20003}; +Line(1186) = {20003,20001}; +Line(1187) = {20001,20002}; +Line(1188) = {20002,20004}; +Line(1189) = {20004,20014}; +Line(1190) = {20014,10014}; +Line(1191) = {10014,10004}; +Line(1192) = {20002,20012}; +Line(1193) = {20012,10012}; +Line(1194) = {10012,10002}; +Line(1195) = {20001,20011}; +Line(1196) = {20011,10011}; +Line(1197) = {10011,10001}; +Line(1198) = {20003,20013}; +Line(1199) = {20013,10013}; +Line(1200) = {10013,10003}; + +Line Loop(1201) = {1176,1173,1174,1175}; +Plane Surface(1202) = {1082,1201}; +Line Loop(1203) = {1180,1177,1178,1179}; +Plane Surface(1204) = {1073,1203}; +Line Loop(1205) = {1181,1182,1183,1184}; +Plane Surface(1206) = {1070,1205}; +Line Loop(1207) = {1185,1186,1187,1188}; +Plane Surface(1208) = {1086,1207}; +Plane Surface(1209) = {1207}; +Plane Surface(1210) = {1205}; +Plane Surface(1211) = {1203}; +Plane Surface(1212) = {1201}; +Line Loop(1213) = {1194,-1175,-1197,1179}; +Plane Surface(1214) = {1213}; +Line Loop(1215) = {1193,-1179,-1196,1183}; +Plane Surface(1216) = {1215}; +Line Loop(1217) = {1192,-1183,-1195,1187}; +Plane Surface(1218) = {1217}; +Line Loop(1219) = {1189,-1184,-1192,1188}; +Plane Surface(1220) = {1219}; +Line Loop(1221) = {1190,-1180,-1193,1184}; +Plane Surface(1222) = {1221}; +Line Loop(1223) = {1191,-1176,-1194,1180}; +Plane Surface(1224) = {1223}; +Line Loop(1225) = {-1181,-1189,1185,1198}; +Plane Surface(1226) = {1225}; +Line Loop(1227) = {1199,-1177,-1190,1181}; +Plane Surface(1228) = {1227}; +Line Loop(1229) = {1200,-1173,-1191,1177}; +Plane Surface(1230) = {1229}; +Line Loop(1231) = {1174,-1197,-1178,1200}; +Plane Surface(1232) = {1231}; +Line Loop(1233) = {1178,-1196,-1182,1199}; +Plane Surface(1234) = {1233}; +Line Loop(1235) = {-1195,-1186,1198,1182}; +Plane Surface(1236) = {1235}; + +Point(30001) = {w,w,h3,p9}; +Point(30002) = {w,-w,h3,p9}; +Point(30003) = {-w,w,h3,p9}; +Point(30004) = {-w,-w,h3,p9}; +Point(30005) = {w,w,-h3,p9}; +Point(30006) = {w,-w,-h3,p9}; +Point(30007) = {-w,w,-h3,p9}; +Point(30008) = {-w,-w,-h3,p9}; + +Point(30011) = {w1,w,h3,p9}; +Point(30012) = {w1,-w,h3,p9}; +Point(30013) = {-w,w,h4,p9}; +Point(30014) = {-w,-w,h4,p9}; +Point(30021) = {w,w,h4,p9}; +Point(30022) = {w,-w,h4,p9}; + +Point(30211) = {w1,w,-h3,p9}; +Point(30212) = {w1,-w,-h3,p9}; +Point(30213) = {-w,w,-h4,p9}; +Point(30214) = {-w,-w,-h4,p9}; +Point(30221) = {w,w,-h4,p9}; +Point(30222) = {w,-w,-h4,p9}; + +Point(30311) = {w2-w1,w,h3,p9}; +Point(30312) = {w2-w1,-w,h3,p9}; +Point(30313) = {w2+w,w,h4,p9}; +Point(30314) = {w2+w,-w,h4,p9}; +Point(30321) = {w2-w,w,h4,p9}; +Point(30322) = {w2-w,-w,h4,p9}; +Point(30401) = {w2-w,w,h3,p9}; +Point(30402) = {w2-w,-w,h3,p9}; +Point(30403) = {w2+w,w,h3,p9}; +Point(30404) = {w2+w,-w,h3,p9}; +Point(30441) = {w2-w,w,h1,p9}; +Point(30442) = {w2-w,-w,h1,p9}; + +Point(40311) = {w2-w1,w,-h3,p9}; +Point(40312) = {w2-w1,-w,-h3,p9}; +Point(40313) = {w2+w,w,-h4,p9}; +Point(40314) = {w2+w,-w,-h4,p9}; +Point(40321) = {w2-w,w,-h4,p9}; +Point(40322) = {w2-w,-w,-h4,p9}; +Point(40401) = {w2-w,w,-h3,p9}; +Point(40402) = {w2-w,-w,-h3,p9}; +Point(40403) = {w2+w,w,-h3,p9}; +Point(40404) = {w2+w,-w,-h3,p9}; +Point(40441) = {w2-w,w,-h1,p9}; +Point(40442) = {w2-w,-w,-h1,p9}; + +Line(1255) = {10004,30004}; +Line(1256) = {30004,30014}; +Line(1257) = {30014,30022}; +Line(1258) = {30022,30322}; +Line(1259) = {30322,30314}; +Line(1260) = {30314,30404}; +Line(1261) = {10002,30002}; +Line(1262) = {30002,30012}; +Line(1263) = {30012,30312}; +Line(1264) = {30312,30402}; +Line(1265) = {30402,30442}; +Line(1266) = {10003,30003}; +Line(1267) = {30003,30013}; +Line(1268) = {30013,30021}; +Line(1269) = {30021,30321}; +Line(1270) = {30321,30313}; +Line(1271) = {30313,30403}; +Line(1272) = {10001,30001}; +Line(1273) = {30001,30011}; +Line(1274) = {30011,30311}; +Line(1275) = {30311,30401}; +Line(1276) = {30401,30441}; +Line(1277) = {30014,30013}; +Line(1279) = {30002,30001}; +Line(1282) = {30402,30401}; +Line(1285) = {30314,30313}; + +Point(30541) = {w2-w,w,h2,p9}; +Point(30542) = {w2-w,-w,h2,p9}; +Point(30603) = {w2+w,w,h2,p9}; +Point(30604) = {w2+w,-w,h2,p9}; +Point(40541) = {w2-w,w,-h2,p9}; +Point(40542) = {w2-w,-w,-h2,p9}; +Point(40603) = {w2+w,w,-h2,p9}; +Point(40604) = {w2+w,-w,-h2,p9}; + +Line(1287) = {30442,30542}; +Line(1288) = {30441,30541}; +Line(1289) = {30541,30542}; +Line(1290) = {30404,30604}; +Line(1291) = {30403,30603}; +Line(1292) = {30603,30604}; +Line(1293) = {30604,30542}; +Line(1294) = {30541,30603}; +Line(1295) = {30542,40542}; +Line(1296) = {40542,40442}; +Line(1297) = {40442,40402}; +Line(1298) = {30541,40541}; +Line(1299) = {40541,40441}; +Line(1300) = {40441,40401}; +Line(1301) = {30604,40604}; +Line(1302) = {40604,40404}; +Line(1303) = {30603,40603}; +Line(1304) = {40603,40403}; +Line(1305) = {40402,40312}; +Line(1306) = {40312,30212}; +Line(1307) = {30212,30006}; +Line(1308) = {30006,20002}; +Line(1309) = {40403,40313}; +Line(1310) = {40313,40321}; +Line(1311) = {40321,30221}; +Line(1312) = {30213,30221}; +Line(1313) = {40404,40314}; +Line(1314) = {40314,40322}; +Line(1315) = {40322,30222}; +Line(1316) = {30222,30214}; +Line(1317) = {30214,30008}; +Line(1318) = {30213,30007}; +Line(1319) = {30213,30214}; +Line(1320) = {40313,40314}; +Line(1321) = {40401,40311}; +Line(1322) = {40311,30211}; +Line(1323) = {30211,30005}; +Line(1324) = {30005,20001}; +Line(1325) = {20003,30007}; +Line(1326) = {20004,30008}; +Line(1329) = {40604,40542}; +Line(1330) = {40542,40541}; +Line(1331) = {40541,40603}; +Line(1332) = {40603,40604}; + +Line Loop(1333) = {1263,1264,1265,1287,-1293,-1290,-1260,-1259,-1258,-1257,-1256,-1255,-1176,1261,1262}; +Plane Surface(1334) = {1333}; +Line Loop(1335) = {1268,1269,1270,1271,1291,-1294,-1288,-1276,-1275,-1274,-1273,-1272,-1174,1266,1267}; +Plane Surface(1336) = {1335}; +Line Loop(1337) = {1266,1267,-1277,-1256,-1255,1173}; +Plane Surface(1338) = {1337}; +Line Loop(1339) = {1279,-1272,1175,1261}; +Plane Surface(1340) = {1339}; +Line Loop(1341) = {1273,1274,1275,-1282,-1264,-1263,-1262,1279}; +Plane Surface(1342) = {1341}; +Line Loop(1343) = {-1287,-1265,1282,1276,1288,1289}; +Plane Surface(1344) = {1343}; +Line Loop(1345) = {-1270,-1269,-1268,-1277,1257,1258,1259,1285}; +Plane Surface(1346) = {1345}; +Line Loop(1347) = {-1290,-1260,1285,1271,1291,1292}; +Plane Surface(1348) = {1347}; +Line Loop(1349) = {1329,1330,1331,1332}; +Plane Surface(1350) = {1349}; +Line Loop(1351) = {1293,-1289,1294,1292}; +Plane Surface(1352) = {1351}; +Line Loop(1353) = {1331,-1303,-1294,1298}; +Plane Surface(1354) = {1353}; +Line Loop(1355) = {-1330,-1295,-1289,1298}; +Plane Surface(1356) = {1355}; +Line Loop(1357) = {1329,-1295,-1293,1301}; +Plane Surface(1358) = {1357}; +Line Loop(1359) = {-1332,-1303,1292,1301}; +Plane Surface(1360) = {1359}; +Line Loop(1361) = {-1313,-1302,-1332,1304,1309,1320}; +Plane Surface(1362) = {1361}; +Line(1363) = {40401,40402}; +Line(1364) = {30005,30006}; +Line Loop(1365) = {-1297,-1296,1330,1299,1300,1363}; +Plane Surface(1366) = {1365}; +Line Loop(1367) = {1305,1306,1307,1308,1188,1326,-1317,-1316,-1315,-1314,-1313,-1302,1329,1296,1297}; +Plane Surface(1368) = {1367}; +Line Loop(1369) = {1321,1322,1323,1324,-1186,1325,-1318,1312,-1311,-1310,-1309,-1304,-1331,1299,1300}; +Plane Surface(1370) = {1369}; +Line Loop(1371) = {-1316,-1315,-1314,-1320,1310,1311,-1312,1319}; +Plane Surface(1372) = {1371}; +Line Loop(1373) = {1317,-1326,1185,1325,-1318,1319}; +Plane Surface(1374) = {1373}; +Line Loop(1375) = {-1187,-1324,1364,1308}; +Plane Surface(1376) = {1375}; +Line Loop(1377) = {1305,1306,1307,-1364,-1323,-1322,-1321,1363}; +Plane Surface(1378) = {1377}; + +// coil top +Surface Loop(1379) = {1074,1124,1083,1118,1120,1122,1160,1158,1164,1162}; +Volume(1380) = {1379}; +// coil middle +Surface Loop(1381) = {1152,1074,1130,1128,1071,1126,1132,1154,1156,1150}; +Volume(1382) = {1381}; +// coil bottom +Surface Loop(1383) = {1071,1134,1136,1087,1138,1140,1144,1146,1148,1142}; +Volume(1384) = {1383}; + +// magnet inside coil, top +Surface Loop(1385) = {1211,1224,1230,1232,1212,1214}; +Volume(1386) = {1385}; +// air gap +Surface Loop(1387) = {1210,1228,1234,1211,1222,1216}; +Volume(1388) = {1387}; +// magnet inside coil, bottom +Surface Loop(1389) = {1209,1226,1210,1236,1218,1220}; +Volume(1390) = {1389}; + +// magnet outside coil, top +Surface Loop(100000) = {1352,1334,1342,1336,1346,1338,1212,1340,1348,1344}; +Volume(100001) = {100000}; +// magnet outside coil, middle +Surface Loop(100002) = {1350,1358,1356,1352,1354,1360}; +Volume(100003) = {100002}; +// magnet outside coil, bottom +Surface Loop(100004) = {1209,1374,1368,1378,1376,1370,1372,1362,1350,1366}; +Volume(100005) = {100004}; + +// 2 missing cut surfaces +Line Loop(100006) = {1047,1048,1045,1046}; +Plane Surface(100007) = {100006,1072,1351}; +Line Loop(100008) = {1049,1050,1051,1052}; +Plane Surface(100009) = {100008,1069,1349}; + +// cut volume, inside +Surface Loop(100010) = {1216,1222,1228,1234,1204,1156,1150,1206,1152,1154}; +Volume(100011) = {100010}; + +// cut volume, outside +Surface Loop(100012) = {1356,100009,1102,100007,1108,1114,1098,1130,1128,1126,1132,1358,1360,1354}; +Volume(100013) = {100012}; + +// air top +Surface Loop(100014) = {1202,1083,1118,1124,100007,1106,1100,1094,1112,1090,1122,1120,1334,1342,1336,1346,1338,1348,1344,1340}; +Volume(100015) = {100014}; + +// air "hole" top (above inside cut) +Surface Loop(100016) = {1214,1224,1230,1232,1202,1160,1158,1164,1204,1162}; +Volume(100017) = {100016}; + +// air "hole" bottom (below inside cut) +Surface Loop(100018) = {1236,1218,1220,1226,1206,1144,1146,1148,1142,1208}; +Volume(100019) = {100018}; + +// air bottom +Surface Loop(100020) = {1138,100009,1104,1110,1116,1096,1092,1134,1136,1087,1140,1208,1374,1368,1378,1376,1370,1372,1362,1366}; +Volume(100021) = {100020}; diff --git a/benchmarks/3d/mem3D_wv2.geo b/benchmarks/3d/mem3D_wv2.geo new file mode 100644 index 0000000000000000000000000000000000000000..f1070addefbcf2ddd5f38b2cb483cfa49000e28d --- /dev/null +++ b/benchmarks/3d/mem3D_wv2.geo @@ -0,0 +1,496 @@ +Mesh.Algorithm = 2 ; +Mesh.CharacteristicLengthFactor = 1. ; +Mesh.Normals = 0;//Size of the normal vectors +Mesh.Points = 0 ; + +FEM = 0 ; + +u = 1.e-6 ; + +Lc = 475 * u ; +Lb = 205 * u ; +Ls = 625 * u ; + +da = 80 * u ; +t = 150 * u ; +bc = 275 * u ; +bb = 20 * u ; + +w = 25 * u ; + +p0= 20*u ; +p1 = 20*u ; +p2 = p1; + +d = 4*u ;//4*u + +td = .2 * u ;// .2*u +tin = .5 * u ;//.5*u +bin = 285 * u ; +Lin = 485 *u ; +win = bin/3 ; +gap = 3*u ;// 3*u + + +// Shell for FEM +lcs1 = 70 * u ; +lcs2 = 90 * u ; +R1 = 600 * u ; +R2 = 900 * u ; + +Point(1) = { bc/2, Lc/2, 0, p0}; +Point(2) = { bc/2,-Lc/2, 0, p0}; +Point(3) = {-bc/2,-Lc/2, 0, p0}; +Point(4) = {-bc/2, Lc/2, 0, p0}; + +k = newp ; +i = 0;kl = 1 ; +For(1:4) +Point(k) = { bc/2, Lc/2-3*w-i*(da+bb), 0, p1}; +Point(k+1) = { bc/2, Lc/2-3*w-bb-i*(da+bb), 0, p1}; +Point(k+2) = { -bc/2, Lc/2-3*w-i*(da+bb), 0, p1}; +Point(k+3) = { -bc/2, Lc/2-3*w-bb-i*(da+bb), 0, p1}; + +Point(k+4) = { bc/2+Lb, Lc/2-3*w-i*(da+bb), 0, p1}; +Point(k+5) = { bc/2+Lb, Lc/2-3*w-bb-i*(da+bb), 0, p1}; +Point(k+6) = { -bc/2-Lb, Lc/2-3*w-i*(da+bb), 0, p1}; +Point(k+7) = { -bc/2-Lb, Lc/2-3*w-bb-i*(da+bb), 0, p1}; + +Line(kl) = {k,k+4}; +Line(kl+1) = {k+1,k+5}; +Line(kl+2) = {k+2,k+6}; +Line(kl+3) = {k+3,k+7}; + +Line(kl+4) = {k,k+1}; +Line(kl+5) = {k+4,k+5}; +Line(kl+6) = {k+2,k+3}; +Line(kl+7) = {k+6,k+7}; + +k += 8; i+=1; kl +=8 ; +EndFor + +Line(33) = {4,1}; +Line(34) = {4,7}; +Line(35) = {8,15}; +Line(36) = {16,23}; +Line(37) = {24,31}; +Line(38) = {32,3}; +Line(39) = {3,2}; +Line(40) = {2,30}; +Line(41) = {29,22}; +Line(42) = {21,14}; +Line(43) = {13,6}; +Line(44) = {5,1}; + +p_beams = 16 ; +p_wbeams = 3 ; +p_between = 4;//5 +p_width = 12 ; + +nl = 2 ; + +Transfinite Line {1:4, 9:12, 17:20, 25:28 } = p_beams; +Transfinite Line {5:8,13:16, 21:24, 29:32 } = p_wbeams; +Transfinite Line {34:38,40:44} = p_between ; +Transfinite Line {33,39} = p_width ; + +Line Loop(45) = {4,-8,-3,7}; +Plane Surface(46) = {45}; +Line Loop(47) = {12,-16,-11,15}; +Plane Surface(48) = {47}; +Line Loop(49) = {20,-24,-19,23}; +Plane Surface(50) = {49}; +Line Loop(51) = {28,-32,-27,31}; +Plane Surface(52) = {51}; + +Line Loop(53) = {2,-6,-1,5}; +Plane Surface(54) = {53}; +Line Loop(55) = {-13,9,14,-10}; +Plane Surface(56) = {55}; +Line Loop(57) = {-21,17,22,-18}; +Plane Surface(58) = {57}; +Line Loop(59) = {-29,25,30,-26}; +Plane Surface(60) = {59}; + +Transfinite Surface{46} = {8,12,11,7}; +Transfinite Surface{48} = {16,20,19,15}; +Transfinite Surface{50} = {24,28,27,23}; +Transfinite Surface{52} = {32,36,35,31}; + +Transfinite Surface{54} = {10,6,5,9}; +Transfinite Surface{56} = {18,14,13,17}; +Transfinite Surface{58} = {26,22,21,25}; +Transfinite Surface{60} = {34,30,29,33}; + +Line(61) = {7,5}; +Line(62) = {8,6}; +Line(63) = {15,13}; +Line(64) = {16,14}; +Line(65) = {23,21}; +Line(66) = {24,22}; +Line(67) = {31,29}; +Line(68) = {32,30}; + +Transfinite Line {61:68} = p_width ; + +Line Loop(69) = {44,-33,34,61}; +Plane Surface(70) = {69}; +Line Loop(71) = {-5,-61,7,62}; +Plane Surface(72) = {71}; +Line Loop(73) = {43,-62,35,63}; +Plane Surface(74) = {73}; +Line Loop(75) = {-13,-63,15,64}; +Plane Surface(76) = {75}; +Line Loop(77) = {42,-64,36,65}; +Plane Surface(78) = {77}; +Line Loop(79) = {-21,-65,23,66}; +Plane Surface(80) = {79}; +Line Loop(81) = {41,-66,37,67}; +Plane Surface(82) = {81}; +Line Loop(83) = {-29,-67,31,68}; +Plane Surface(84) = {83}; +Line Loop(85) = {-40,-39,-38,68}; +Plane Surface(86) = {85}; + +Transfinite Surface{70} = {5,1,4,7}; +Transfinite Surface{72} = {6,5,7,8}; +Transfinite Surface{74} = {13,6,8,15}; +Transfinite Surface{76} = {14,13,15,16}; +Transfinite Surface{78} = {21,14,16,23}; +Transfinite Surface{80} = {22,21,23,24}; +Transfinite Surface{82} = {29,22,24,31}; +Transfinite Surface{84} = {30,29,31,32}; +Transfinite Surface{86} = {2,30,32,3}; + +Color Turquoise {Surface{46:60:2};} +Color Turquoise {Surface{70:86:2};} + +volPlateINT[] = {} ; + +For i In {0:7} +vol[] = Extrude Surface { 46+i*2, {0,0,d}} { Layers { {nl}, {1}} ; };; +volPlateINT[] += vol[1]; +EndFor +For i In {0:8} +vol[] = Extrude Surface { 70+i*2, {0,0,d}} { Layers { {nl}, {1}} ; };; +volPlateINT[] += vol[1]; +EndFor + + +Sur_PlateINT = 1111 ; +PlateINT = 1100; + +Physical Surface(Sur_PlateINT) = {261,-60,84,82,403,239,-58,80,78,359,217,-56,76,74,315, + 183,-54,-187,-191,271,70,-275,279,103,-46,-95,99,108,-306, + 196,-284,-328,323,125,-48,-117,121,130,-350,218,-209,-213, + -372,367,147,-50,-139,143,152,-394,240,-231,-235,-416,411, + 169,-52,-161,165,174,-438,262,-253,-257,-460,447,86,451,455,72}; + +Physical Volume(PlateINT) = {volPlateINT[]}; + +Sur_Beam1i = 101 ; +Sur_Beam2i = 102 ; +Sur_Beam3i = 103 ; +Sur_Beam4i = 104 ; + +Pto_Beam1i1 = 111 ; +Pto_Beam1i2 = 112 ; +Pto_Beam1i3 = 113 ; +Pto_Beam1i4 = 114 ; + +Pto_Beam2i1 = 121 ; +Pto_Beam2i2 = 122 ; +Pto_Beam2i3 = 123 ; +Pto_Beam2i4 = 124 ; + +Pto_Beam3i1 = 131 ; +Pto_Beam3i2 = 132 ; +Pto_Beam3i3 = 133 ; +Pto_Beam3i4 = 134 ; + +Pto_Beam4i1 = 141 ; +Pto_Beam4i2 = 142 ; +Pto_Beam4i3 = 143 ; +Pto_Beam4i4 = 144 ; + +Physical Surface(Sur_Beam1i) = {99}; +Physical Surface(Sur_Beam2i) = {121}; +Physical Surface(Sur_Beam3i) = {143}; +Physical Surface(Sur_Beam4i) = {165}; + +Physical Point(Pto_Beam1i1)= {11} ; +Physical Point(Pto_Beam1i2)= {12} ; +Physical Point(Pto_Beam1i3)= {38} ; +Physical Point(Pto_Beam1i4)= {42} ; + +Physical Point(Pto_Beam2i1)= {19} ; +Physical Point(Pto_Beam2i2)= {20} ; +Physical Point(Pto_Beam2i3)= {48} ; +Physical Point(Pto_Beam2i4)= {52} ; + +Physical Point(Pto_Beam3i1)= {27} ; +Physical Point(Pto_Beam3i2)= {28} ; +Physical Point(Pto_Beam3i3)= {58} ; +Physical Point(Pto_Beam3i4)= {62} ; + +Physical Point(Pto_Beam4i1)= {35} ; +Physical Point(Pto_Beam4i2)= {36} ; +Physical Point(Pto_Beam4i3)= {68} ; +Physical Point(Pto_Beam4i4)= {72} ; + +Sur_Beam1d = 201 ; +Sur_Beam2d = 202 ; +Sur_Beam3d = 203 ; +Sur_Beam4d = 204 ; + +Pto_Beam1d1 = 211 ; +Pto_Beam1d2 = 212 ; +Pto_Beam1d3 = 213 ; +Pto_Beam1d4 = 214 ; + +Pto_Beam2d1 = 221 ; +Pto_Beam2d2 = 222 ; +Pto_Beam2d3 = 223 ; +Pto_Beam2d4 = 224 ; + +Pto_Beam3d1 = 231 ; +Pto_Beam3d2 = 232 ; +Pto_Beam3d3 = 233 ; +Pto_Beam3d4 = 234 ; + +Pto_Beam4d1 = 241 ; +Pto_Beam4d2 = 242 ; +Pto_Beam4d3 = 243 ; +Pto_Beam4d4 = 244 ; + +Physical Surface(Sur_Beam1d) = {-187}; +Physical Surface(Sur_Beam2d) = {-213}; +Physical Surface(Sur_Beam3d) = {-235}; +Physical Surface(Sur_Beam4d) = {-257}; + +Physical Point(Pto_Beam1d1)= {9} ; +Physical Point(Pto_Beam1d2)= {10} ; +Physical Point(Pto_Beam1d3)= {78} ; +Physical Point(Pto_Beam1d4)= {82} ; + +Physical Point(Pto_Beam2d1)= {17} ; +Physical Point(Pto_Beam2d2)= {18} ; +Physical Point(Pto_Beam2d3)= {92} ; +Physical Point(Pto_Beam2d4)= {96} ; + +Physical Point(Pto_Beam3d1)= {25} ; +Physical Point(Pto_Beam3d2)= {26} ; +Physical Point(Pto_Beam3d3)= {102} ; +Physical Point(Pto_Beam3d4)= {106} ; + +Physical Point(Pto_Beam4d1)= {33} ; +Physical Point(Pto_Beam4d2)= {34} ; +Physical Point(Pto_Beam4d3)= {112} ; +Physical Point(Pto_Beam4d4)= {116} ; + + +Color Turquoise {Surface{261,60,84,82,403,239,58,80,78,359,217,56,76,74,315, + 183,54,187,191,271,70,275,279,103,46,95,99,108,306, + 196,284,328,323,125,48,117,121,130,350,218,209,213, + 372,367,147,50,139,143,152,394,240,231,235,416,411, + 169,52,161,165,174,438,262,253,257,460,447,86,451,455,72};} + + +Point(201) = { bin/2, Lin/2, -gap, p0}; +Point(202) = { bin/2,-Lin/2, -gap, p0}; +Point(203) = {-bin/2,-Lin/2, -gap, p0}; +Point(204) = {-bin/2, Lin/2, -gap, p0}; + +Line(404) = {204,201}; +Line(405) = {201,202}; +Line(406) = {202,203}; +Line(407) = {203,204}; + +p_widthD = 10 ;//14 +p_heightD = 20 ;//24 + +Transfinite Line {404,406} = p_widthD ; +Transfinite Line {405,407} = p_heightD ; + + +Line Loop(461) = {404,405,406,407}; +Plane Surface(462) = {461}; + +Transfinite Surface {462} = {204,201,202,203} ; + +nl2 = 1 ; +vol[] = Extrude Surface { 462, {0,0,-td}} { Layers { {nl2}, {1}} ; };; +volDiel = vol[1]; + +Diel = 2000 ; +Physical Volume (Diel) = {volDiel}; + +Sur_Diel = 2001 ; +Physical Surface (Sur_Diel) = {-1128,-462,-1120,-1124,-1132}; + + +//Color Coral {Surface{1128,462,1120,1124,1132}; } + + +vol[] = Extrude Surface {1133, {0,0,-tin}} { Layers { {nl2}, {1}} ; };; +volPlateIN = vol[1]; + +PlateIN = 2200 ; +Physical Volume (PlateIN) = {volPlateIN}; + +Sur_PlateIN = 2222; +Physical Surface (Sur_PlateIN) = {1133,2010,2014,2018,2022,-2023}; + +Color NavyBlue{Surface{1133,2010,2014,2018,2022,2023};} + +//Coherence ; + + +If(FEM) +// Air Layer for computation with FEM +da = gap/4 ; + +Point(281) = { bc/2+Lb+da, Lc/2+da, d+da, p0}; +Point(282) = { bc/2+Lb+da,-Lc/2-da, d+da, p0}; +Point(283) = {-bc/2-Lb-da,-Lc/2-da, d+da, p0}; +Point(284) = {-bc/2-Lb-da, Lc/2+da, d+da, p0}; +Point(285) = { bc/2+Lb+da, Lc/2+da, -da, p0}; +Point(286) = { bc/2+Lb+da,-Lc/2-da, -da, p0}; +Point(287) = {-bc/2-Lb-da,-Lc/2-da, -da, p0}; +Point(288) = {-bc/2-Lb-da, Lc/2+da, -da, p0}; + +Line(451) = {284,281}; +Line(452) = {281,282}; +Line(453) = {282,283}; +Line(454) = {283,284}; +Line(455) = {288,285}; +Line(456) = {285,286}; +Line(457) = {286,287}; +Line(458) = {287,288}; +Line(459) = {288,284}; +Line(460) = {285,281}; +Line(461) = {286,282}; +Line(462) = {287,283}; + +Line Loop(500) = {454,451,452,453}; +Plane Surface(501) = {500}; +Line Loop(502) = {455,456,457,458}; +Plane Surface(503) = {502}; +Line Loop(504) = {460,-451,-459,455}; +Plane Surface(505) = {504}; +Line Loop(506) = {461,-452,-460,456}; +Plane Surface(507) = {506}; +Line Loop(508) = {-453,-461,457,462}; +Plane Surface(509) = {508}; +Line Loop(510) = {-454,-462,458,459}; +Plane Surface(511) = {510}; + + +Surface Loop(512) = {511,501,505,507,509,503}; + +Surface Loop(513) = {261,60,84,82,403,239,58,80,78,359,217,56,76,74,315, + 183,54,187,191,271,70,275,279,103,46,95,99,108,306, + 196,284,328,323,125,48,117,121,130,350,218,209,213, + 372,367,147,50,139,143,152,394,240,231,235,416,411, + 169,52,161,165,174,438,262,253,257,460,447,86,451,455,72}; +Volume(514) = {512,513}; + +AirLayer = 555 ; +Physical Volume (AirLayer) = {514}; + +//Shell +Point(0) = {0,0,0,lcs1} ; +Point(289) = {R1,0,0,lcs1} ; +Point(290) = {0,R1,0,lcs1} ; +Point(291) = {-R1,0,0,lcs1} ; +Point(292) = {0,-R1,0,lcs1} ; + +Point(293) = {R2,0,0,lcs2} ; +Point(294) = {0,R2,0,lcs2} ; +Point(295) = {0,-R2,0,lcs2} ; +Point(296) = {-R2,0,0,lcs2} ; + +Point(297) = {0,0,R1,lcs1} ; +Point(298) = {0,0,-R1,lcs1} ; +Point(299) = {0,0,R2,lcs2} ; +Point(300) = {0,0,-R2,lcs2} ; + + +Circle(2223) = {291,0,292}; +Circle(2224) = {292,0,289}; +Circle(2225) = {289,0,290}; +Circle(2226) = {290,0,291}; +Circle(2227) = {297,0,292}; +Circle(2228) = {297,0,289}; +Circle(2229) = {297,0,290}; +Circle(2230) = {297,0,291}; +Circle(2231) = {291,0,298}; +Circle(2232) = {298,0,292}; +Circle(2233) = {289,0,298}; +Circle(2234) = {290,0,298}; + +Circle(2235) = {295,0,293}; +Circle(2236) = {293,0,294}; +Circle(2237) = {294,0,296}; +Circle(2238) = {296,0,295}; +Circle(2239) = {295,0,299}; +Circle(2240) = {293,0,299}; +Circle(2241) = {294,0,299}; +Circle(2242) = {296,0,299}; +Circle(2243) = {295,0,300}; +Circle(2244) = {293,0,300}; +Circle(2245) = {294,0,300}; +Circle(2246) = {296,0,300}; + +Line Loop(2247) = {-2228,2227,2224}; +Ruled Surface(2248) = {2247}; +Line Loop(2249) = {-2225,-2228,2229}; +Ruled Surface(2250) = {2249}; +Line Loop(2251) = {-2226,-2229,2230}; +Ruled Surface(2252) = {2251}; +Line Loop(2253) = {-2227,2230,2223}; +Ruled Surface(2254) = {2253}; +Line Loop(2255) = {2224,2233,2232}; +Ruled Surface(2256) = {2255}; +Line Loop(2257) = {-2233,2225,2234}; +Ruled Surface(2258) = {2257}; +Line Loop(2259) = {-2234,2226,2231}; +Ruled Surface(2260) = {2259}; +Line Loop(2261) = {-2223,2231,2232}; +Ruled Surface(2262) = {2261}; + +Line Loop(2263) = {-2239,2235,2240}; +Ruled Surface(2264) = {2263}; +Line Loop(2265) = {-2240,2236,2241}; +Ruled Surface(2266) = {2265}; +Line Loop(2267) = {-2241,2237,2242}; +Ruled Surface(2268) = {2267}; +Line Loop(2269) = {-2242,2238,2239}; +Ruled Surface(2270) = {2269}; +Line Loop(2271) = {-2243,2235,2244}; +Ruled Surface(2272) = {2271}; +Line Loop(2273) = {-2244,2236,2245}; +Ruled Surface(2274) = {2273}; +Line Loop(2275) = {-2245,2237,2246}; +Ruled Surface(2276) = {2275}; +Line Loop(2277) = {-2246,2238,2243}; +Ruled Surface(2278) = {2277}; + +Surface Loop(2279) = {2266,2264,2270,2268,2276,2274,2272,2278}; +Surface Loop(2280) = {2250,2258,2256,2248,2254,2252,2260,2262}; +Volume(2281) = {2279,2280}; + + +Shell = 3000 ; +Physical Volume (Shell) ={2281}; + + +Surface Loop(2282) = {1120,462,1124,1128,1132,2022,2010,2014,2018,2023}; + +Volume(2283) = {2280,2282,512}; + +Air = 1000 ; +Physical Volume (Air) = {2283}; + +EndIf + diff --git a/benchmarks/3d/plate_conductor.geo b/benchmarks/3d/plate_conductor.geo new file mode 100644 index 0000000000000000000000000000000000000000..512c8155b45793ebbcde5f8c510a6b76cc672e4c --- /dev/null +++ b/benchmarks/3d/plate_conductor.geo @@ -0,0 +1,111 @@ +cm = 1e-02; +cl = 0.005; + + +//box +Point(1) = {0, 0, 0, cl}; +Point(2) = {0, 0, 10*cm, cl}; +Point(3) = {10*cm, 0, 10*cm, cl}; +Point(4) = {10*cm, 0, 0, cl}; +Point(5) = {0, 2*cm, 0, cl}; +Point(6) = {0, 2*cm, 10*cm, cl}; +Point(7) = {10*cm, 2*cm, 10*cm, cl}; +Point(8) = {10*cm, 2*cm, 0, cl}; + +//outer conductor +Point(14) = {6.25*cm, 0, 5*cm, cl}; +Point(15) = {6.25*cm, 0, 4.6*cm, cl}; +Point(16) = {5.85*cm, 0, 5*cm, cl}; +Point(17) = {6.25*cm, 0, 5.4*cm, cl}; +Point(18) = {6.65*cm, 0, 5*cm, cl}; + +//inner conductor +Point(19) = {6.25*cm, 1*cm, 5*cm, cl}; +Point(20) = {6.25*cm, 1*cm, 4.9*cm, cl}; +Point(21) = {6.15*cm, 1*cm, 5*cm, cl}; +Point(22) = {6.25*cm, 1*cm, 5.1*cm, cl}; +Point(23) = {6.35*cm, 1*cm, 5*cm, cl}; + +//box +Line(1) = {1,2}; +Line(2) = {2,3}; +Line(3) = {3,4}; +Line(4) = {4,1}; +Line(5) = {1,5}; +Line(6) = {2,6}; +Line(7) = {3,7}; +Line(8) = {4,8}; +Line(9) = {5,6}; +Line(10) = {6,7}; +Line(11) = {7,8}; +Line(12) = {8,5}; + +//outer conductor +Circle(17) = {15,14,16}; +Circle(18) = {16,14,17}; +Circle(19) = {17,14,18}; +Circle(20) = {18,14,15}; + +//inner conductor +Circle(21) = {20,19,21}; +Circle(22) = {21,19,22}; +Circle(23) = {22,19,23}; +Circle(24) = {23,19,20}; + +//Side Walls +Line Loop(25) = {9,-6,-1,5}; Plane Surface(1) = {25};//CW +Line Loop(26) = {-10,-6,2,7}; Plane Surface(2) = {26}; +Line Loop(27) = {-11,-7,3,8}; Plane Surface(3) = {27}; +Line Loop(28) = {12,-5,-4,8}; Plane Surface(4) = {28};//CW + +Line Loop(31) = {21,22,23,24}; Plane Surface(7) = {31}; + +//upper inner conductor volume +innerCond[] = Extrude {0,-1*cm,0} { Surface{7}; Recombine;}; + +//middle inner conductor plate +Line Loop(33) = {33,34,35,36}; + +//Bottom +Line Loop(30) = {1,2,3,4}; Plane Surface(6) = {30,33}; + +//middle inner conductor + upper outer conductor +Line Loop(29) = {17,18,19,20}; Plane Surface(10) = {29,33}; + +//extrudes outside the box +outterCond[] = Extrude {0,-1*cm,0} { Surface{10}; Recombine;}; + +//top +LL1 = newll; Line Loop(LL1) = {9,10,11,12}; +S1 = news; Plane Surface(S1) = {LL1}; + +SL1 = newsl; Surface Loop(SL1) = {S1,-1,2,3,-4,-6,40,44,48,52,7}; +Volume(4) = {SL1}; + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/benchmarks/extrude/cube.geo b/benchmarks/extrude/cube.geo new file mode 100644 index 0000000000000000000000000000000000000000..2491e1595dd407076d672c182293ec4ff51eec31 --- /dev/null +++ b/benchmarks/extrude/cube.geo @@ -0,0 +1,15 @@ + +x = .0; +Point(1) = {0.0,0.0,0.0,1}; +Point(2) = {1,0.0,0.0,1}; +Point(3) = {1,1,0.0,1}; +Point(4) = {0,1,0.0,1}; +Line(1) = {4,3}; +Line(2) = {3,2}; +Line(3) = {2,1}; +Line(4) = {1,4}; +Line Loop(5) = {2,3,4,1}; +Plane Surface(6) = {5}; +Extrude {0,0.0,1}{ Surface{6}; Layers {1}; + //Recombine; +}