diff --git a/benchmarks/3d/sphere_in_cube_hexa.geo b/benchmarks/3d/sphere_in_cube_hexa.geo new file mode 100644 index 0000000000000000000000000000000000000000..6bbb75dc1eabec47d75f4abbe640f66092ac11df --- /dev/null +++ b/benchmarks/3d/sphere_in_cube_hexa.geo @@ -0,0 +1,119 @@ +l = 1; +r1 = 3; +r2 = 0.5; +n = 3; +n2 = n; + +// exterior cube +Point(1) = {0,0,0,l}; +Point(2) = {r1,r1,-r1,l}; +Point(3) = {-r1,r1,-r1,l}; +Point(4) = {-r1,-r1,-r1,l}; +Point(5) = {r1,-r1,-r1,l}; +Line(1) = {2,3}; +Line(2) = {3,4}; +Line(3) = {4,5}; +Line(4) = {5,2}; +Transfinite Line{1:4} = n; +Line Loop(5) = {4,1,2,3}; +Plane Surface(6) = {5}; +Transfinite Surface{6} = {2,3,4,5}; +Recombine Surface{6}; +Extrude Surface {6, {0.0,0.0,2*r1}}; +Delete { Volume{1}; } + +// force transfinite grid on exterior cube +Transfinite Line {3,22,11,13,8,4,14,9,1,18,10,2} = n; +Transfinite Surface {6} = {4,5,2,3}; +Transfinite Surface {15} = {5,6,7,2}; +Transfinite Surface {19} = {11,7,2,3}; +Transfinite Surface {23} = {4,15,11,3}; +Transfinite Surface {27} = {15,6,5,4}; +Transfinite Surface {28} = {15,6,7,11}; +Recombine Surface{6,15,19,23,27,28}; + +// interior sphere +Point(102) = {r2,r2,-r2,l}; +Point(103) = {-r2,r2,-r2,l}; +Point(104) = {-r2,-r2,-r2,l}; +Point(105) = {r2,-r2,-r2,l}; +Circle(29) = {103,1,102}; +Circle(30) = {102,1,105}; +Circle(31) = {105,1,104}; +Circle(32) = {104,1,103}; +Line Loop(33) = {29,30,31,32}; +Ruled Surface(34) = {33}; +Rotate { {1,0,0},{0,0,0}, Pi/2 } { Duplicata{ Surface{34}; } } +Rotate { {1,0,0},{0,0,0}, Pi } { Duplicata{ Surface{34}; } } +Rotate { {1,0,0},{0,0,0}, 3*Pi/2 } { Duplicata{ Surface{34}; } } +Rotate { {0,1,0},{0,0,0}, Pi/2 } { Duplicata { Surface{34}; } } +Rotate { {0,1,0},{0,0,0}, -Pi/2 } { Duplicata { Surface{34}; } } + +// force transfinite grid on interior sphere +Transfinite Line{29:59} = n; +Transfinite Surface {34} = {102,103,104,105}; +Transfinite Surface {35} = {106,108,102,103}; +Transfinite Surface {40} = {109,111,108,106}; +Transfinite Surface {45} = {104,105,111,109}; +Transfinite Surface {50} = {104,109,106,103}; +Transfinite Surface {51} = {105,111,108,102}; +Recombine Surface{34,35,40,45,50,51}; + +// connect sphere and cube +Line(52) = {102,2}; +Line(53) = {108,7}; +Line(54) = {105,5}; +Line(55) = {111,6}; +Line(56) = {109,15}; +Line(57) = {104,4}; +Line(58) = {103,3}; +Line(59) = {106,11}; +Transfinite Line{52:59} = n2; + +Line Loop(60) = {58,-1,-52,-29};Plane Surface(61) = {60}; +Line Loop(62) = {58,18,-59,-39};Plane Surface(63) = {62}; +Line Loop(64) = {59,-9,-53,-36};Plane Surface(65) = {64}; +Line Loop(66) = {37,52,14,-53};Plane Surface(67) = {66}; +Line Loop(68) = {56,-22,-57,-49};Plane Surface(69) = {68}; +Line Loop(70) = {31,57,3,-54};Plane Surface(71) = {70}; +Line Loop(72) = {54,13,-55,-47};Plane Surface(73) = {72}; +Line Loop(74) = {55,-11,-56,41};Plane Surface(75) = {74}; +Line Loop(76) = {59,10,-56,-44};Plane Surface(77) = {76}; +Line Loop(78) = {58,2,-57,32};Plane Surface(79) = {78}; +Line Loop(80) = {52,-4,-54,-30};Plane Surface(81) = {80}; +Line Loop(82) = {42,53,-8,-55};Plane Surface(83) = {82}; + +// force transfinite grid on connection surfaces +Transfinite Surface {61} = {103,102,2,3}; +Transfinite Surface {63} = {106,103,3,11}; +Transfinite Surface {65} = {11,7,108,106}; +Transfinite Surface {67} = {102,108,7,2}; +Transfinite Surface {69} = {4,15,109,104}; +Transfinite Surface {71} = {5,4,104,105}; +Transfinite Surface {73} = {6,5,105,111}; +Transfinite Surface {75} = {15,6,111,109}; +Transfinite Surface {77} = {15,109,106,11}; +Transfinite Surface {79} = {4,104,103,3}; +Transfinite Surface {81} = {105,5,2,102}; +Transfinite Surface {83} = {111,6,7,108}; +Recombine Surface{61:83:2}; + +// connection volumes +Surface Loop(84) = {19,61,-63,-65,67,-35}; Volume(85) = {84}; +Surface Loop(86) = {34,61,-79,6,81,-71}; Volume(87) = {86}; +Surface Loop(88) = {23,-79,63,77,69,-50}; Volume(89) = {88}; +Surface Loop(90) = {28,83,-40,75,-77,65}; Volume(91) = {90}; +Surface Loop(92) = {15,81,-67,-51,-83,73}; Volume(93) = {92}; +Surface Loop(94) = {27,-71,-45,-73,-75,-69}; Volume(95) = {94}; + +// force transfinite grid on connection volume +Transfinite Volume{85} = {106,108,102,103,11,7,2,3}; +Transfinite Volume{87} = {104,105,102,103,4,5,2,3}; +Transfinite Volume{89} = {104,109,106,103,4,15,11,3}; +Transfinite Volume{91} = {109,111,108,106,15,6,7,11}; +Transfinite Volume{93} = {111,105,102,108,6,5,2,7}; +Transfinite Volume{95} = {109,104,105,111,15,4,5,6}; + +Physical Volume(1) = {85:95:2}; // ext volume +Physical Surface(100) = {34,35,40,45,50,51}; // int surf +Physical Surface(101) = {6,15,19,23,27,28}; // ext surf